我的数据结构如下:
ID Location Flag1 Flag2 Flag3 Date
A A1 0 1 0 01/01/2013
A A2 1 0 0 01/02/2013
A A2 1 0 0 01/02/2013
A A3 1 0 0 01/03/2013
A A3 0 1 0 01/03/2013
我需要计算(在多个ID中),具有不同标志的不同位置的不同日期的数量。理想的结果如下:
ID Date Count
A 01/01/2013 1
A 01/02/2013 1
A 01/03/2013 2
尽管具有相同的Flag1值,但数据中的元素导致A与位置A2不同,但我不关心那些并且想要在理想结果中汇总数据。
我尝试过使用它:
select count distinct ID, Location, Flag1, Flag2, Flag3, count (distinct
ID||Location||Date) as count
group by ID, Location
这似乎不对。
答案 0 :(得分:1)
这是一种方法。只需在子查询中获取不同的记录,然后对数据进行计数和分组。
SELECT Id, [Date], COUNT(*) AS cnt
FROM
(
SELECT DISTINCT ID, Location, Flag1, Flag2, Flag3, [Date]
FROM YourTable
) AS data
GROUP BY data.Id, data.[Date]