2

我正在尝试使用 Count(*) 以及我的查询条件
Sample Table is
Table: STUD_NAME 获取 表中的记录数

标识名称  
1史蒂文  
2 史密斯  
2 本  
1 威利

我的查询是

 select std.name 
 from STUD_Name where id='2'

为此,它会将输出显示为“Smith”和“Ben”,同时我需要 STUD_NAME 表中的记录总数。

右边应该显示总记录为“4”,请帮我解决这个问题以及在这种情况下如何形成查询

4

3 回答 3

3
SELECT name, 
       cnt as total_count
FROM (
    SELECT id
           name,
           count(*) over () as cnt
    FROM stud_name
) t
WHERE id = 2

假设这是一个数字列,则不需要id值周围的单引号(并且由于在后台发生的隐式数据类型转换实际上是有害的)2

于 2012-04-11T09:42:37.277 回答
1

关于什么:

select 
       std.name 
      ,(select count(1) from STUD_Name) nrofstds  
from   STUD_Name std where std.id='2'
于 2012-04-11T09:41:44.807 回答
0
select STUD_NAME.name, CNT.count
from STUD_NAME
   , (select count(*) COUNT from STUD_NAME) CNT
where id='2'
于 2012-04-11T09:45:43.043 回答