Mah*_*vcs 4 sql sql-server count subquery
我有一个带有分组的 sql select 命令,我想获取总行数。我该如何实现这一目标?
我的sql命令:
select p.UserName, p.FirstName + ' ' + p.LastName as [FullName]
,count(b.billid) as [Count], sum(b.PercentRials) as [Sum] from Bills b
inner join UserProfiles p on b.PayerUserName=p.UserName
where b.Successful=1
group by p.UserName, p.FirstName + ' ' + p.LastName
Run Code Online (Sandbox Code Playgroud)
我尝试过这些但没有运气:
select count(*) from (select ...)
Run Code Online (Sandbox Code Playgroud)
和
select count(select ...)
Run Code Online (Sandbox Code Playgroud)
编辑
这是我想要运行的完整 sql 语句:
select count(*) from ( select p.UserName, p.FirstName + ' ' + p.LastName as [FullName]
,count(b.billid) as [Count], sum(b.PercentRials) as [Sum] from Bills b
inner join UserProfiles p on b.PayerUserName=p.UserName
where b.Successful=1
group by p.UserName, p.FirstName + ' ' + p.LastName)
Run Code Online (Sandbox Code Playgroud)
我在最后一行收到此错误:
Incorrect syntax near ')'.
Run Code Online (Sandbox Code Playgroud)
SELECT COUNT(*)
FROM
(
select p.UserName, p.FirstName + ' ' + p.LastName as [FullName]
,count(b.billid) as [Count], sum(b.PercentRials) as [Sum] from Bills b
inner join UserProfiles p on b.PayerUserName=p.UserName
where b.Successful=1
group by p.UserName, p.FirstName + ' ' + p.LastName --<-- Removed the extra comma here
) A --<-- Use an Alias here
Run Code Online (Sandbox Code Playgroud)
正如我从你所展示的尝试中所预期的那样,你缺少一个别名
select count(*)
from (select ...) Q --<-- This sub-query in From clause needs an Alias
Run Code Online (Sandbox Code Playgroud)
编辑
如果您只需要知道此查询返回的行,并且无论如何都在代码中的某个位置执行此查询,您可以简单地使用@@ROWCOUNT函数。就像是....
SELECT ...... --<-- Your Query
SELECT @@ROWCOUNT --<-- This will return the number of rows returned
-- by the previous query
Run Code Online (Sandbox Code Playgroud)