2016-08-01 71 views
0

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

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

+0

expr代表表达式。 – jarlh

+0

@欢迎。 。 。我甚至没有看到'COUNT()'中允许使用'ALL'关键字。也许你只是想'COUNT(*)'。 –

+0

@jarlh我的错,我的意思不是代表缩写的意思,而是作为非终结符号。 – zer0uno

回答

-1

COUNT(NAME),COUNT(SURNAME)会显示所有姓名和姓氏。在这种情况下,ALL都是非法的。

+1

'COUNT(NAME,SURNAME)'本身是非法的。目前没有这样的语法。 – Rahul

+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标准。

+0

是的,您遇到了这个问题:为什么开发SQL标准的人会忽略这种语法? – zer0uno

相关问题