3

特定の時間 (特定の日など) に 15 分間隔でユーザーに予約された通話の数を計算するために実行している MySQL クエリがあります。これまでのところ、私は持っています:

    SELECT
date_action,
DATE_FORMAT(date_action, "%i") AS minute,
CASE 
    WHEN minute(date_action) BETWEEN 0 and 14 THEN '00'
    WHEN minute(date_action) BETWEEN 15 and 29 THEN '15'
    WHEN minute(date_action) BETWEEN 30 and 44 THEN '30'
    WHEN minute(date_action) BETWEEN 45 and 59 THEN '45'
END AS intervals
FROM
clients
WHERE
HOUR(date_action) = 09
AND DAY(date_action) = 15
AND MONTH(date_action) = 07
AND YEAR(date_action) = 2013

これはそのままでうまく機能しますが、私が見逃している魔法の成分は、各間隔に割り当てられた呼び出しの数の「カウント」であるため、たとえば上記のコードは次のようになります。

Date_time - Minute - Interval
2013-07-15 09:54:24 - 54 - 45
2013-07-15 09:29:32 - 29 - 15
2013-07-15 09:13:33 - 13 - 00
2013-07-15 09:53:53 - 53 - 45
2013-07-15 09:00:49 - 00 - 00

したがって、間隔ごとに1行のみを返し、その間隔内の呼び出し数のカウントを含む列を追加したいので、分を間隔に変換します。

Interval - Count
45 - 2
15 - 1
00 - 2

あまりにも長い間、このレンガの壁に頭をぶつけていたような気がするので、どんな助けも大歓迎です. クエリの後にいくつかの後処理が行われていますが、可能であれば、これをすべて SQL で行うことをお勧めします。:)

4

2 に答える 2