SQLの2つのテーブルにわたるフィールドの一意の組み合わせのカウントに関する質問。MSaccess2003。
table1: id, fld1, fld2
table2: id, dateAndTime
idは一意ではありません。テーブルは「id」間で結合されます。
fld1
とfld2
(int)の明確な組み合わせの日付(dd / mm / yy-時間を無視)によるカウントが必要です。
具体的には、との組み合わせが最も明確な日付を知る必要がfld1
ありfld2
ます。
table1に
1、101、101 2、101、101 3、101、101 4、101、102 5、101、102 6、101、103
そして表2は
2010年12月1日 2010年12月2日 2010年12月3日 2010年12月1日 2010年12月2日 2010年12月4日 2010年12月5日 2010年12月6日
私は欲しい
12/1/2010, 1 'only 1 unique combinatin of fld1 and fld2
12/2/2010, 3 'only 3 unique combinations of fld1 and fld2
ただし、最大カウントの日付とカウントが必要なだけなので、「2010年12月2日、3」の出力のみが必要です。
以下の正しい答えへのコメントでこれをフォーマットする方法を理解できませんでした-それで、これはMSAccess2003用です。
Select TOP 5 theDay, count(*) AS theCount
FROM (
Select cdate(int(date_col)) As theDay
From tbl1 Inner Join tbl2 on tbl1.id=tbl2.id
Group By cdate(int(date_col)), fld1, fld2
) As X
Group By theDay
Order By 2 Desc;
これにより、日付別の上位5つの組み合わせが返されます(時間値は無視されます)