我是否可以使用由group by引起的汇总函数而不汇总?

时间:2015-12-11 15:29:55

标签: mysql count group-by aggregate

对于给定的表格

 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

我希望bc列值保持可见。我需要使用COUNT,但如果不使用GROUP BY则不可能。 有没有办法从起始表中获得以下结果:

 d   b   c
---|---|---
 2   2   3
 2   4   5
 1   6   7

d列值表示COUNT(a)将返回的行,而不会卷起(分组)行。

1 个答案:

答案 0 :(得分:1)

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

example on sqlfiddle