汽車零件保養懶人包

SQL分組、sql分群、sql分組統計在PTT/mobile01評價與討論,在ptt社群跟網路上大家這樣說

SQL分組在[SQL ] Group by的意義- 看板Database

作者[SQL ] Group by的意義
標題lueichun (你們看是小波耶!!!)
時間2019-11-06 20:25:10 UTC


資料庫名稱:Oracle

資料庫版本:

內容/問題描述:Oracle的group by語法,有個規定是若在select語句某個欄位使用

聚合函數(例如sum count avg max min),那麼表格其他欄位就需要被加到

group by子句裡,例如以下網頁某段敘述:

https://bit.ly/2WXTihj

如果查詢中包含一個聚合函數,而所選擇的列不在聚合函數中,那麽這些列就必須
出現在GROUP BY子句中.(不用聚合函數的列必須出現在group by後)

不這樣做的話,會出現ORA-00937: 不是一個單一群體的群體函數

那我請問在group by子句加上其他列,這樣做在邏輯上的意義可以解釋成以下這樣嗎:

因為使用了聚合函數,就相當於是將多個列的值濃縮成一個值,例如

max就是從多個列中取最大值;min就是取最小值;sum就是取出列所有值的總和這一個值。

那麼為了讓這些值可以和其他欄位保持1:1的關係,所以必須要將其他列給group by起來,

例如同一個網頁的另一段敘述:

例1 :select ename,sex from emp group by sex;
(錯,ename沒有用聚合函數,也沒有出現在group by後面,因為將sex分成兩組,
但ename有很多,到底輸出那個ename呢?)

例2: select max(ename),sex from emp group by sex;(對)

----------------------------

上面那個例1講到,ename對sex是多對1,導致輸出時會無法決定要輸出的值,而例2

則是讓讓資料依性別(男或女)group起來,然後再對這兩個group取出ename最大值。

ename最大值和性別會是1比1的關係,這樣輸出時就可以順利輸出了。

我目前是這樣理解,但我總覺得對於group by意義的解釋,似乎哪裡怪怪的不通順

但是又想不出來。請問有人能幫忙解釋一下group by邏輯上的意義嗎?

拜託不要說「因為不這樣寫會跳錯」......

--

推 criky: 就分組啊 11/06 23:07
→ criky: 不用group by就是不分組,看全部的count,sum... 11/06 23:09
→ criky: group by sex(gender)就是看男女的count,sum... 11/06 23:10
推 cutekid: 你的理解是對的喔! 11/07 11:17
推 ww90053: 我的解釋,一群男人和一群女人分開比大小(你看,我的ena 03/27 21:43
→ ww90053: me比較大~) 03/27 21:43

SQL分組關鍵字相關的推薦文章

SQL分組在[iT鐵人賽Day20]SQL語法-GROUP BY 資料分組 - iT 邦幫忙的討論與評價

[iT鐵人賽Day20]SQL語法-GROUP BY 資料分組 ... SQL語法中的Group by 意思就是說,欄位內的資料若有不只一筆名稱相同的資料的話,就會把它們作為群組。

SQL分組在SQL GROUP BY(分組) - SQL教學 - 極客書的討論與評價

SQL GROUP BY子句用於協同SELECT語句用來安排相同的數據分組。 GROUP BY子句在SELECT語句的WHERE子句之後並ORDER BY子句之前。 Syntax: GROUP BY子句的基本語法如下。

SQL分組在SQL分組排序 - 程式人生的討論與評價

2018年11月4日 — row_number() over(partition by '分組' order by '日期'). 對每組的資料按日期正序排序並加上行號,取出時只取行號為1,也就是第一條資料。

SQL分組在ptt上的文章推薦目錄

    SQL分組在將SQL COUNT() 函式與GROUP BY 一起使用 - Navicat的討論與評價

    在今天的文章中,我們將學習如何使用Navicat Premium 作為資料庫用戶端査詢Sakila 範例資料庫,根據不同的準則分組計數。 案例1:演出過大多數PG 電影的 ...

    SQL分組在SQL GROUP BY对查询结果分组 - 极客笔记的討論與評價

    我们在做统计的时候,可能需要先对数据按照不同的数值进行分组,然后对这些分好的组进行聚集统计。对数据进行分组,需要使用GROUP BY子句。 SQL GROUP ...

    SQL分組在SQL中Group By的使用- Rain Man - 博客园的討論與評價

    1、概述“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小 ...

    SQL分組在SQL GROUP BY 分組- SQL 語法教學Tutorial - Fooish 程式技術的討論與評價

    聚合函數指的也就是AVG()、COUNT()、MAX()、MIN()、SUM() 等這些內建函數。 GROUP BY 語法(SQL GROUP BY Syntax). SELECT column_name(s), ...

    SQL分組在SQL GROUP BY 语句 - 菜鸟教程的討論與評價

    SQL GROUP BY 语句GROUP BY 语句可结合一些聚合函数来使用GROUP BY 语句GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。 SQL GROUP BY 语法SELECT ...

    SQL分組在sql server——分組查詢(方法和思想) - green-jcx的討論與評價

    文章出處 思想先排序在匯總sql server里分組查詢通常用于配合聚合函數,達到分類匯總統計的信息。而其分類匯總的本質實際上就是先將信息排序, ...

    SQL分組在SQL分組查詢後取每組的前N條記錄 - 今天頭條的討論與評價

    分組 查詢是常見的SQL查詢語句。首先,我們知道MySQL資料庫分組功能主要是通過GROUP BY關鍵字來實現的,而且GROUP BY通常得配合聚合函數來使用用,比如 ...

    SQL分組的PTT 評價、討論一次看



    更多推薦結果