求写一条复杂SQL

id file1 file2 file3
1 A公司 A项目 开发
2 A公司 A项目 开发
3 A公司 B项目 开发
4 A公司 B项目 开发
5 A公司 B项目 实施
6 B公司 B项目 实施
7 B公司 C项目 测试
8 B公司 C项目 测试
9 B公司 C项目 开发
10 C公司 C项目 开发
11 C公司 C项目 测试
12 C公司 D项目 开发
13 C公司 F项目 开发
14 C公司 F项目 测试
15 C公司 F项目 实施

现在需要根据根据file1,file2,file3一样的统计人事
以A公司为例子,A公司 A项目 开发 的有两个人,
A公司 B项目 开发 的有两个人,
A公司 B项目 实施 的有一个人,

id file1 file2 file3 count
1 A公司 A项目 开发 2
2 A公司 A项目 开发 2
3 A公司 B项目 开发 2
4 A公司 B项目 开发 2
5 A公司 B项目 实施 1

类似这样的
我还需要根据file1和file2来得到总人数
以A公司为例子,A公司 A项目 的有两个人(就两个开发),
A公司 B项目 的有三个人(包括2个开发一个实施),

id file1 file2 file3 count sum
1 A公司 A项目 开发 2 2
2 A公司 A项目 开发 2 2
3 A公司 B项目 开发 2 3
4 A公司 B项目 开发 2 3
5 A公司 B项目 实施 1 3

file1 file2 file3 count sum
A公司 A项目 开发 2
A公司 B项目 开发 2
A公司 B项目 实施 1

select file1,file2,file3,count(*) count,sum(count(*)) over(PARTITION BY file1,file2) sum from test t group by file1,file2,file3;

语句大概就这样,你换成表试试看!

(select file1,file2,file3,count(id)as count from table group by file1,file2,file3 ) a join
(select file1,file2,count(id) as sum from table group by file1,file2) b
on a.file1=b.file1 and a.file2=b.file2

select file1,file2,file3,count(file3)from table group by file1,file2,file3?这个不对么?

不同维度的相同度量间行转列,不用join真的不行吗?我试了不用join得不到结果,有高手不用join可以解决吗?

你只是在要用二个维度去统计出人数,去找下分析函数吧,应该是可以简单实现!

不知道是不是我没理解题目,好像不是很复杂吧 :oops: