作者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/cn.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