考虑到一组约束,我正在寻找查询中的两件事:
我可以得到第一场比赛:
SELECT TOP 1
ID,
ReportYear,
Name,
SignDate,
...
FROM Table
WHERE
...
ORDER BY ... //I can put in here which one I want to take
Run Code Online (Sandbox Code Playgroud)
然后,如果我使用,我可以获得匹配计数
SELECT
MIN(ID),
MIN(ReportYear),
MIN(Name),
MIN(SignDate),
... ,
COUNT(*) as MatchCount
FROM Table
WHERE
...
GROUP BY
??? // I don't really want any grouping
Run Code Online (Sandbox Code Playgroud)
我真的想避免在我的所有结果上分组和使用聚合函数.这个问题SQL Server选择COUNT而不使用聚合函数或group by建议答案是
SELECT TOP 1
ID,
ReportYear,
Name,
SignDate,
... ,
@@ROWCOUNT as MatchCount
FROM Table
Run Code Online (Sandbox Code Playgroud)
这可以在没有TOP 1的情况下工作,但是当它在那里时,@@ ROWCOUNT =返回的行数,即1.如何在不进行任何分组的情况下基本上获得COUNT(*)的输出(在where子句之后留下的任何内容)需要聚合所有列?
我不想做的是重复这两次,一次为第一行,然后再为@@ ROWCOUNT.我没有找到一种方法可以正确使用GROUP …