为什么SQL-Standard不允许COUNT(col1,col2,...,colN)

时间:2016-08-01 13:49:49

标签: sql

事情很简单,为什么SQL-Standard不允许COUNT(col1, col2, ..., colN)?背后的原因是什么?

这很奇怪,因为反之,SQL标准允许COUNT(DISTINCT col1, col2, ..., colN)

2 个答案:

答案 0 :(得分:0)

你想要什么?只需COUNT(*)即可为您提供“所需”的答案。

  • COUNT(*) 通常是要使用的东西。它计算行数(按WHERE过滤后,受GROUP BY
  • 限制
  • COUNT(col)很常见,但通常不是必需的 - 它使用col IS NOT NULL计算行数。
  • COUNT(DISTINCT col)确定col有多少不同的值。
  • COUNT(DISTINCT col1, col2)确定col1和col2组合的不同值。

如果您想知道为什么MySQL / MariaDB选择忽略该语法,您可能需要询问开发SQL标准的人。

答案 1 :(得分:-1)

COUNT(NAME),COUNT(SURNAME)为您提供所有姓名和姓氏。在这种情况下,ALL是非法的。