sql語法02 group by
阿新 • • 發佈:2021-01-23
技術標籤:mysql
語法規範:
1、GROUP BY子句中列出的每一列都必須是檢索列或有效的表示式(但不能是聚集函式)。如果在SELECT中使用表示式,則必須在GROUP BY子句中指定相同的表示式。不能使用別名。
2、除聚集計算語句外,SELECT語句中的每一列都必須在GROUP BY子句中給出。
基礎理解:就是對指定欄位做一個去重,
但是去重之後可能會出現一個單元格多個值的情況。
https://blog.csdn.net/shaofei63/article/details/42800793?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control
這個部落格講的很詳細,大概意思就是:如果需要在select中顯示一行多值的列的情況,那麼只能使用聚集函式。
語法理解2:過濾分組。
SELECT vend_id, COUNT() AS num_prods
FROM Products
WHERE prod_price >= 4
GROUP BY vend_id
HAVING COUNT() >= 2;
having 和where的區別
這裡有另一種理解方法,WHERE在資料分組前進行過濾,HAVING在資料分組後進行過濾。
題目:
求第N大工資
select nsalary from employee group by salary order by salary desc limit n-1 offset 1;