我想创建一个SQL查询,为我而不是剃刀代码进行计数,我想计算数据库中不同日期的数量。
我发现SQL Server 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>
答案 0 :(得分:1)
<强>更新强> 您的查询要求每个不同日期的计数。如果你想知道你有多少人需要总结它们。您可以使用SUM查询嵌套查询。然后使用额外的列#34; 1&#34;,以便总结行数(应该是您的不同日期)。日期也可以是保留字。您可能希望尝试避免将其用作列名。
SELECT SUM(New_Row) as dateSUM from (
SELECT COUNT(date) as dateCount, 1 as New_Row FROM Test GROUP BY date
) a
答案 1 :(得分:0)
也许:
SELECT COUNT(date) as [date]
FROM Test
GROUP BY date
Date
是保留字,需要添加[]
答案 2 :(得分:0)
您将SQL与日期的三个用法混淆。我假设原始字段命名为date。我还假设每条记录都填充了日期字段。
SELECT COUNT(*) as numDates FROM Test GROUP BY date