0

関心のある2つの列、created_atとtotal_timeを含むテーブルがあります。レコードが作成された曜日ごとにグループ化するクエリを実行し、合計カウントと total_time > 5 のカウントをカウントします。

たとえば、金曜日に 6 つのレコードがあり、そのうちの 4 つの時間が 5 より大きい場合、クエリは金曜日に対して次のように返す必要があります。

金曜日 | 6 | 4

私はその日とカウント> 5が次のように機能しています:

SELECT
DAYNAME(created_at) as weekday,
COUNT(*) AS count
FROM my_table
WHERE
total_time > 5
GROUP BY weekday
ORDER BY count DESC

しかし、(total_time に関係なく) 合計カウントも含める方法はありますか?

アドバイスをいただければ幸いです。

ありがとう

4

1 に答える 1

3

両方のカウントを取得できますが、次を使用します。

SELECT DAYNAME(created_at) as weekday,
  COUNT(*) AS count,
  sum(case when total_time > 5 then 1 else 0 end) TimeOver5
FROM my_table
GROUP BY weekday
ORDER BY count DESC

SQL Fiddle with Demoを参照してください。

CASEこれは、式を含む集計関数を使用して、total_time >5

于 2013-03-27T15:20:20.080 に答える