SQL Server CE计数组由

时间:2017-04-12 18:55:07

标签: c# sql-server-ce

我想创建一个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>

3 个答案:

答案 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