ビットグループ関数を使用して、あるユーザが Web ページを訪問した月ごとの日数を計算する方法の例を以下に示します。
CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL, day INT(2) UNSIGNED ZEROFILL); INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2), (2000,2,23),(2000,2,23);
このテーブルには、ユーザがページを訪問した日付を表す年月日が格納されます。月ごとの訪問日数を取得するには、以下のクエリを実行します。
SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1 GROUP BY year,month;
以下の結果が表示されます。
+------+-------+------+ | year | month | days | +------+-------+------+ | 2000 | 01 | 3 | | 2000 | 02 | 2 | +------+-------+------+
このクエリでは、年月の組み合わせに対して異なる日付が何回出現するかを、自動的に重複データを除去することによって計算しています。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.