SQL 服务器 CE 计数分组依据

SQL Server CE count group by

我想创建一个 SQL 查询来为我而不是在剃须刀代码中进行计数,我想计算我的数据库中不同日期的数量。

我发现 SQL 服务器 CE 不支持 count(distinct column_name) 而是使用 group by 将是解决方案,但由于某种原因我无法使其工作,我是什么做错了吗?

SELECT COUNT(date) as date 
FROM Test 
GROUP BY date

这只是计算了我数据库中的每个日期,而不是像下面这样写出来的不同日期

var totalcount = 0;

foreach (var c in db.Query(query))
{
    var ttotalcount = c.date;
    totalcount += ttotalcount;
}
<a>@totalcount<a>

也许:

SELECT COUNT(date) as [date] 
FROM Test 
GROUP BY date

Date是保留字,需要加上[]

您混淆了 SQL 日期的三种用法。我假设原始字段名为日期。我还假设每条记录都填充了日期字段。

SELECT COUNT(*) as numDates FROM Test GROUP BY date

已更新 您的查询要求每个不同日期的计数。如果你想知道你有多少,你需要把它们加起来。您可以通过将查询与 SUM 查询嵌套来执行此操作。然后使用一个额外的列 defulted 到“1”,以允许总结行数(这应该是您的不同日期)。日期也可以是保留字。您可能想尝试避免使用它作为列名。

SELECT SUM(New_Row) as dateSUM from (
   SELECT COUNT(date) as dateCount, 1 as New_Row FROM Test GROUP BY date
) a