SQL,計算group by分組後組內不同值的數量

2021-08-08 17:25:00 字數 440 閱讀 2935

如現有一張購物表shopping

name

cargo小明筆

小明橡皮小明筆

小明橡皮

小明橡皮小紅筆

小紅橡皮

小紅橡皮

現要求小明和小紅分別買了多少筆和多少橡皮,形成以下格式姓名筆

橡皮小明23

小紅12

select name as 姓名,

sum( case when cargo='筆' then 1

else

0 end ) as 筆,

sum( case when cargo='橡皮' then 1

else

0 end ) as 橡皮

from shopping group by name;

注:這裡不能用count計算行數,count只是別分組後每組所有行的數目

sql分組資料GROUP BY

分組是使用select語句的group by子句建立的。理解分組最好的辦法就是看乙個例子 輸入 select vend id count as num prods from products group by vend id 輸出 vend id num prods brs01 3 dll01 4 ...

SQL實現group by 分組後組內排序

在乙個月黑風高的夜晚,自己無聊學習的sql的時候,練習,突發奇想的想實現乙個功能查詢,一張成績表有如下字段,班級id,英語成績,資料成績,語文成績如下圖 實現 查詢出 每個班級英語成績最高的前兩名的記錄。看起來不難的業務,做起來才知道還挺麻煩的,說白了其實就是實現分組後的組內排序,一般不思考的話我們...

group by分組統計SQL語句

用一條查詢語句,查出各姓名的數值餘額.使用者表 姓名a bc 扣費表 姓名 數值 a 3.5 b 5.2 a 2.充值表 姓名 數值 b 10 a 10 a 10.5 返回 姓名 差額 充值和 扣費和 測試通過 select table1.tname,table1.telname,table3.充值...