从select中选择count(*)

nav*_*100 25 sql t-sql sql-server

我试图从以下查询中获取行数.我只将行数计为1,但有35条记录.能告诉我如何从内部查询中获取计数吗?

谢谢

SELECT COUNT(*)(SELECT DISTINCT a.my_id, a.last_name, a.first_name, b.temp_val
                FROM Table_A a INNER JOIN Table_B b on a.a_id = b.a_id)
Run Code Online (Sandbox Code Playgroud)

Aar*_*and 53

你错过了一个FROM,你需要给子查询一个别名.

SELECT COUNT(*) FROM 
(
  SELECT DISTINCT a.my_id, a.last_name, a.first_name, b.temp_val
   FROM dbo.Table_A AS a 
   INNER JOIN dbo.Table_B AS b 
   ON a.a_id = b.a_id
) AS subquery;
Run Code Online (Sandbox Code Playgroud)

  • 关于为什么 OP 的原始查询是有效语法的任何想法?我会打赌农场不会编译更少运行。 (2认同)
  • @ConradFrix`select count(*)`在t-sql中返回`1` ...即使没有`from`子句.因此,他发布的查询有2个结果集,一个具有单行/值1,然后是其不同查询的第二个结果集. (2认同)