1
異なる列と日付範囲で値を数える方法は知っていますが、両方を同時に行う必要はありません。日付範囲のある異なる列のSQLカウント値
DATE | Number1 | Number2 | Number3 | Number4 | Number5 | Number6
2017-08-05 | 01 | 02 | 03 | 04 | 05 | 06
2017-08-04 | 02 | 03 | 04 | 05 | 06 | 07
2017-08-03 | 03 | 04 | 05 | 06 | 07 | 08
2017-08-02 | 04 | 05 | 06 | 07 | 08 | 09
2017-08-01 | 05 | 06 | 07 | 08 | 09 | 10
を、今私が選びだしデータ範囲のため、このような結果が欲しい:
私は、この例の値を持つテーブルを持っている(例を2017年8月2日から2017年8月3日まで。):
Number | occurrences
03 | 1
04 | 2
05 | 2
06 | 2
07 | 2
08 | 2
09 | 1
これをどのように1つのSQLクエリで行うのですか?
SELECT num, COUNT(*) AS Occurences
FROM (
SELECT date_col, Number1 AS num
FROM table_name
UNION ALL
SELECT date_col, Number2
FROM table_name
...
) AS sub
-- WHERE date_col BETWEEN ... AND ... --specific range
GROUP BY num
ORDER BY num;
はとにかく、あなたのスキーマ設計を再考する必要があります
この種の問題は(ほとんど)常に貧弱な設計の兆候です – Strawberry