尝试使用Count(*)和我的查询条件来获取表中的记录数
样品表是
表:STUD_NAME
Id Name 1 Steven 2 smith 2 Ben 1 Willy
我的查询是
select std.name
from STUD_Name where id='2'
为此,它将输出显示为“Smith”和“Ben”,同时我需要STUD_NAME表中的记录总数。
右边它应该显示总记录为“4”,请帮我解决这个问题以及如何在这种情况下形成查询
答案 0 :(得分:3)
SELECT name,
cnt as total_count
FROM (
SELECT id
name,
count(*) over () as cnt
FROM stud_name
) t
WHERE id = 2
假设id
是一个数字列,则不需要值2
左右的单引号(并且由于后台发生的隐式数据类型转换而实际上是有害的)
答案 1 :(得分:1)
怎么样:
select
std.name
,(select count(1) from STUD_Name) nrofstds
from STUD_Name std where std.id='2'
答案 2 :(得分:0)
select STUD_NAME.name, CNT.count
from STUD_NAME
, (select count(*) COUNT from STUD_NAME) CNT
where id='2'