Mysql Count几个字段

时间:2012-05-17 13:38:37

标签: mysql join count

我有一张桌子

id|user_id|start|stop
 1|      1|    1|   1
 2|      2|    1|   1
 3|      2|    1|   0
 4|      3|    0|   0

我想获得下一个结果

user_id|total|start|stop
      1|    1|    1|   1
      2|    2|    2|   1
      3|    1|    0|   0

所以我想进行3次计数并按user_id进行分组。是否可以使用Joins和没有派生表来准备查询?

3 个答案:

答案 0 :(得分:3)

SELECT user_id, 
       Sum (start) AS start, 
       Sum (stop)  AS stop, 
       Count(*)    AS total 
FROM   tablename 
GROUP  BY user_id 

答案 1 :(得分:3)

SELECT   user_id, COUNT(*) total, SUM(start=1) start, SUM(stop=1) stop
FROM     my_table
GROUP BY user_id

答案 2 :(得分:2)

计算start中的1和stop 中的1 的行的总行数。

SELECT user_id, 
   count(case start WHEN 1 then 1 else null end) AS start, 
   count(case stop WHEN 1 then 1 else null end)  AS stop, 
   count (*) AS total 
FROM   tablename 
GROUP  BY user_id