2

私はテーブルを持っています

ID|ユーザーID|開始|停止
 1| 1| 1| 1
 2| 2| 1| 1
 3| 2| 1| 0
 4| 3| 0| 0

次の結果を出したい

user_id|合計|開始|停止
      1| 1| 1| 1
      2| 2| 2| 1
      3| 1| 0| 0

だから私は 3 カウントを作成し、user_id ang get でグループ化します。結合を使用し、派生テーブルを使用せずにクエリを準備することは可能ですか?

4

3 に答える 3

3
SELECT user_id, 
       Sum (start) AS start, 
       Sum (stop)  AS stop, 
       Count(*)    AS total 
FROM   tablename 
GROUP  BY user_id 
于 2012-05-17T13:43:42.970 に答える
3
SELECT   user_id, COUNT(*) total, SUM(start=1) start, SUM(stop=1) stop
FROM     my_table
GROUP BY user_id
于 2012-05-17T13:44:33.050 に答える
2

start1インチと1インチの行をstop 2回カウントするための合計行。

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 
于 2012-05-17T13:49:25.747 に答える