事情很简单,为什么SQL-Standard不允许COUNT(col1, col2, ..., colN)
?背后的原因是什么?
这很奇怪,因为反之,SQL标准允许COUNT(DISTINCT col1, col2, ..., colN)
。
答案 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是非法的。