【问题标题】:SQL count (*) function query for a baseball data table explanationSQL count(*)函数查询某棒球数据表说明
【发布时间】:2021-10-05 18:56:49
【问题描述】:

这行代码很简单,我明白查询会返回什么。我正在尝试理解这段代码的第三行。

   select First 
, sum(rbi) as 'rbis' 
**, count(*) as 'num_players'** 
from #batter_stats 
group by First 
having count(*) >= 5 
order by [rbis] desc

count(*) as 'num_players' 让我对它在此查询中的作用感到困惑。

谢谢。我提供了代码行和数据表。

【问题讨论】:

  • count(*)这里只表示行数,having count(*) > = 5表示至少要有5行。
  • 附带说明:查询无效。名称的 SQL 定界符是双引号 "。一些 DBMS 需要括号。你在这里使用它们:order by [rbis] desc。但是单引号用于字符串文字。所以as 'rbis' 是不正确的,应该是as "rbis" 或as '[rbis] 或只是as rbis。由于您的所有名称都是 SQL 中的有效名称,因此我建议您完全删除引号和括号。它们不是必需的。

标签: sql function count


【解决方案1】:

在您的代码中聚合函数

  , sum(rbi) as rbis
  ,  count(*) as num_players

按列汇总First

count(*)retunr 对应的 groped 值的行数

因此,在您的情况下,为 olumn First 的相应值返回表中的行数

【讨论】:

  • 没有NULL 行这样的东西。 COUNT(*) 返回行数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多