对于给定的表
a b c
---|---|---
1 2 3
1 4 5
2 6 7
查询
SELECT
COUNT(a) as d
GROUP BY
a
返回
d b c
---|---|---
2 2 3
1 6 7
我希望b
和c
列的值保持可见。我需要使用COUNT
,但如果不使用GROUP BY
,这是不可能的有没有办法从起始表中得到以下结果:
d b c
---|---|---
2 2 3
2 4 5
1 6 7
d
列值表示COUNT(a)
在不汇总(分组)行的情况下返回的内容。
drop table if exists t;
CREATE TABLE t (a int, b int, c int);
Insert Into t values
(1, 2 , 3),
( 1, 4 , 5),
( 2 , 6 , 7);
select d, b, c
from t
left join
(SELECT a, COUNT(a) as d
from t
GROUP BY a) t1
on t1.a = t.a
sqlfiddle 的示例