作者cutekid (可愛小孩子)
看板Database
標題Re: [SQL ] 資料統計問題
時間Fri Jan 19 13:04:15 2018
with tb1 as (
select 系所,年級,班別,
count(*) as 人數
from table
group by 系所,年級,班別
)
select *,
sum(人數) over (partition by 系所) as 同系人數
from tb1
※ 引述《joedenkidd (優質的藍色射手)》之銘言:
: 資料庫名稱:postgresql
: 資料庫版本:8.4
: 內容/問題描述:
: 小弟現在有個統計問體要詢問
: 資料如下
: 系所 年級 班别 學號
: A 1 A 12345
: B 2 C 12312
: A 1 A 12346
: A 1 B 12123
: select 系所,年級,班别,sum(1) as 人數from table group by 系所,年級,班别
: 可以統計出 各班人數
: 但問題來了
: 我希望同時能同計年級人數
: 系所 年級 班别 人數 (同系年級人數)
: A 1 A 2 3
: B 2 C 1 1
: A 1 B 1 3
: 有辦法調整上述 sql語法達成嘛
: 請板上大大指點 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.223.59.22
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Database/M.1516338257.A.926.html
1F:→ joedenkidd: postgresql 看來是有with,不過執行這樣的語法,會 01/20 22:12
2F:→ joedenkidd: 出現錯誤syntax error,感謝你,看來要找其它方式~~ 01/20 22:15
不知道 syntax error 錯在哪??
不然 try try 以下:
with tb1 as (
select 系所,年級,班別,
count(*) as 人數
from table
group by 系所,年級,班別
),
tb2 as (
select 系所,count(*) as 同系人數
from table
group by 系所
)
select t1.*,t2.同系人數
from tb1 t1
inner join tb2 t2 on t1.系所 = t2.系所
※ 編輯: cutekid (210.61.233.210), 01/22/2018 15:47:55
3F:→ joedenkidd: 錯誤 syntax error at or near "WITH tb1" 01/22 19:47
4F:→ joedenkidd: 請問tb1是虛擬表還是要建實體的呢?是不是沒建實體, 01/22 19:47
5F:→ joedenkidd: 才錯? 01/22 19:48
6F:→ joedenkidd: 目前處理方式是撈完資料,再用其他程式處理@@a 01/22 19:50