数据库如何在查询出记录的同时,统计记录有多少行

例如:select u.userId from user as u where u.userId<500,能否在查询的同时获取到记录的行数?

9个回答

select userId,count(userId) from user where userId<500

hwxia
hwxia select id,count(id) from user group by id with rollup;
大约 5 年之前 回复

select @@rowcount

@@rowcount不但可以统计查询到多少行,还可统计删除多少行,修改多少行,插入多少行,在使用删除 修改 插入语句的时候
https://msdn.microsoft.com/zh-cn/library/ms187316.aspx

不能这样想的,如果有分页你那个总数就不准确啦

yu766588220
花公子丶 我不需要分页,就是想问能否同时count跟表的其他属性一起查出
大约 5 年之前 回复

聚合函数用来做统计分析用,count()也只是聚合函数的一种。
select u.userId,count(1) as count from user as u where u.userId<500;

jiangyeqt
ConstantDripping 回复ice-prince: 楼下的子查询中select 1 换成select count(1) 试试呢,之前没理解清楚,不好意思啊
大约 5 年之前 回复
yu766588220
花公子丶 您真的确定这样没问题?有试过么?我最初就是这么整,然后报错,错误信息是:选择列表中的列 'user.userId' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。希望您试过后再回答
大约 5 年之前 回复

select u.userId,(select 1 from user as u where u.userId<500) cout from user as u where u.userId<500

使用聚合函数 count()

用COUNT():

 select count(u.userId) from user as u where u.userId<500
yu766588220
花公子丶 我希望查询count的时候也查询其他,例如u.account,不单单只查count
大约 5 年之前 回复

select u.userId,count(1) count from user as u where u.userId<500

count 列代表你查询出来的行数

yu766588220
花公子丶 您真的确定这样可以?而不会报选择列表中的列 'users.userId' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。这样的错误?
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐