0

約 1 000 000 行の非常に単純なテーブルがあり、そのテーブルから集計統計を取得したいと考えています。これは分析リクエストではなく、ユーザー データです。それぞれが特定のwhere句を持つ3つの個別のクエリでデータを取得できます。しかし、それは私のDBサーバーへの3つのクエリになります。また、条件付きの ORDER BY句を使用して 1 つのクエリを実行することもできます。しかし、本番環境で以前にそのようなクエリを使用したことはありません。私はそれでいくつかのトラブルを期待すべきですか?

CREATE TABLE t1 (id INTEGER, fk_1 INTEGER, field_1 INTEGER, field_2 DATETIME);
 ... INSERT INTO t1 ... # 1 000 000 times

SELECT COUNT(*) FROM t1 
WHERE fk_1 = <some_value> 
GROUP BY CASE WHEN (field_1 = 1) THEN 1 ELSE (CASE WHEN field_2 > NOW() THEN 0 ELSE -1 END) END;
4

1 に答える 1

5

ID次のような in カウントを使用してみてください。

SELECT COUNT(ID) FROM t1 
WHERE fk_1 = <some_value> 
GROUP BY CASE WHEN (field_1 = 1) THEN 1 ELSE (CASE WHEN field_2 > NOW() THEN 0 ELSE -1 END) END;
于 2013-07-02T07:19:46.270 に答える