私はstackoverflowで類似の質問を読んだことがありますが、OPのテーブル構造は決して私と同じではないので、答えは私には当てはまりません。私が読んだ投稿は、2つではなく1つの列でGROUP BYしようとしています。私は最新の安定版MySQLを使用しています。複数のパラメータが0を隠しているMySQL GROUP BY
は、ここに私のテーブル「参照」です:
id formatID referenceTime
1 1 2011-6-12 12:40
2 2 2011-6-12 1:04
3 4 2011-6-12 1:03
4 2 2011-6-12 15:20
5 3 2011-6-12 9:30
6 3 2011-6-12 2:55
7 5 2011-6-12 13:15
8 1 2011-6-12 12:32
(etc)
が、私は一日の時間によって発生した形式の各タイプのどれだけを表示するクエリを作成します。この点は、一番忙しい時刻が何であるかを確認することです。私はいくつかの簡単なグラフのWebアプリケーション(Highcharts.js)に使用できる出力を作成するクエリを記述しようとしています。私はそれが次のようになりたい:
Timeofday Subgroup Count
12AM 1 2
12AM 2 6
12AM 3 7
12AM 4 2
12AM 5 0
1AM 1 3
1AM 2 3
1AM 3 0
1AM 4 0
1AM 5 1
(etc)
私はこのクエリを使用しています:
SELECT date_format(referenceTime,'%I %p') AS timeofday,
reference.referenceFormatID AS subgroup,
count(*) AS count
FROM reference
GROUP BY timeofday,subgroup ASC
をカウントがゼロに等しいので、終わるしかし、出力スキップ「行」
適切な形式のデータ系列を作成するには、これらのゼロが必要ですyアプリ。
私は2つの異なる列でグループ化しているので、すべての時間を2番目のテーブルに置くLEFT JOINメソッドは私にとっては機能しません。どうやらLEFT JOINの基準は、各時間が出力表にのと表示されている限り満足していますが、それぞれ時間がの形式で表示されます。
提案がありますか?
と同様の方法を使用することができ、あなたはDUAL表は、ルックアップ使用してそれを実行しようとした場合
を登録しようLEFTに追加しますブライアン・フーバーのポストの – penco