2016-08-01 70 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

相關問題