tb 表的结构:
a | b |
---|---|
1 | 2 |
1 | 2 |
1 | 3 |
我想得到如下数据:
a | b | num(a,b列相同的行数) |
---|---|---|
1 | 2 | 2 |
1 | 2 | 2 |
1 | 3 | 1 |
SELECT COUNT(*) as num FROM tb GROUP BY a,b
SELECT * from tb
请问如何用一句sql写出来呢?
tb 表的结构:
a | b |
---|---|
1 | 2 |
1 | 2 |
1 | 3 |
我想得到如下数据:
a | b | num(a,b列相同的行数) |
---|---|---|
1 | 2 | 2 |
1 | 2 | 2 |
1 | 3 | 1 |
SELECT COUNT(*) as num FROM tb GROUP BY a,b
SELECT * from tb
请问如何用一句sql写出来呢?
手机码了一下,使用子查询。
select t1.a, t1.b, t2.num
from
(
select a, b from tb
) as t1
left join
(
select a, b, count(1) as num from tb group by a,b
) as t2 on t2.a = t1.a and t2.b = t1.b
;
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
select a,b,count(*)as count from test group by a,b
select t1.a,t1.b,t2.count from test as t1 left join (select a,b,count(*)as count from test group by a,b) as t2 on t1.a = t2.a and t1.b = t2.b