事情很简单,为什么SQL标准不允许COUNT(col1, col2, ..., colN)
?背后的原因是什么?为什么SQL标准不允许COUNT(col1,col2,...,colN)
这很奇怪,因为viceversa,SQL标准允许COUNT(DISTINCT col1, col2, ..., colN)
。
事情很简单,为什么SQL标准不允许COUNT(col1, col2, ..., colN)
?背后的原因是什么?为什么SQL标准不允许COUNT(col1,col2,...,colN)
这很奇怪,因为viceversa,SQL标准允许COUNT(DISTINCT col1, col2, ..., colN)
。
COUNT(NAME),COUNT(SURNAME)会显示所有姓名和姓氏。在这种情况下,ALL都是非法的。
'COUNT(NAME,SURNAME)'本身是非法的。目前没有这样的语法。 – Rahul
你的权利,没有足够的重视,相应地修改职位。对不起 –
你想要什么?只需COUNT(*)
为您提供'想要的'答案。
COUNT(*)
是通常用的东西。它计算行(数量由WHERE
并受过滤,GROUP BY
后COUNT(col)
是常见的,但往往是没有必要 - 它计数与col IS NOT NULL
行COUNT(DISTINCT col)
决定有多少个不同的值有用于col
COUNT(DISTINCT col1, col2)
决定有多少个不同的值有用于col1和COL2的组合。如果你想知道为什么的MySQL/MariaDB的选择离开的是语法,你可能要问谁开发人SQL标准。
是的,您遇到了这个问题:为什么开发SQL标准的人会忽略这种语法? – zer0uno
expr代表表达式。 – jarlh
@欢迎。 。 。我甚至没有看到'COUNT()'中允许使用'ALL'关键字。也许你只是想'COUNT(*)'。 –
@jarlh我的错,我的意思不是代表缩写的意思,而是作为非终结符号。 – zer0uno