【发布时间】:2017-09-15 20:59:56
【问题描述】:
我有下表:
select id1, id2 from myTable
id1 id2
1 100
2 100
3 100
3 400
4 200
我想计算id1 的每个案例出现了多少次,同时将id2 的所有案例保留在第二列中,以便我收到下表:
id1 id2 count
1 100 1
2 100 1
3 100 2
3 400 2
4 200 1
以下查询给出了正确的计数,但仅显示 id1 的不同元素,因此它不会保留 id2 的所有情况
select id1, id2, count(id1) from myTable
group by id1
id1 id2 count
1 100 1
2 100 1
3 100 2
4 200 1
相反,我尝试了这个查询,按两列分组,它保留了所有信息,但没有给出我想要的计数:
select id1, id2, count(id1) from myTable
group by id1, id2
id1 id2 count
1 100 1
2 100 1
3 100 1
3 400 1
4 200 1
这感觉应该非常简单。这可以在单个查询中完成,还是必须使用子查询?如果是这样,子查询会是什么样子?
【问题讨论】: