2016-08-01 3 views
0

Die Sache ist einfach, warum nicht SQL-Standard COUNT(col1, col2, ..., colN) zulassen? Was ist der Grund dafür?Warum SQL-Standard erlaubt nicht COUNT (col1, col2, ..., colN)

Es ist ziemlich seltsam, weil umgekehrt SQL-Standard COUNT(DISTINCT col1, col2, ..., colN) ermöglicht.

+0

Ausdruck steht für Ausdruck. – jarlh

+0

@willkommen. . . Ich sehe nicht einmal, dass das Schlüsselwort 'ALL' in' COUNT() 'erlaubt ist. Vielleicht möchten Sie nur 'COUNT (*)'. –

+0

@jarlh meine Schuld, ich habe nicht gemeint, was es als Abkürzung, sondern als nonterminal Symbol steht. – zer0uno

Antwort

-1

COUNT (NAME), COUNT (NAME) erhält Sie ALLE Namen und Nachnamen. ALL ist in diesem Zusammenhang illegal.

+1

'COUNT (NAME, NAME)' selbst ist illegal. Es gibt keine solche Syntax. – Rahul

+0

Ihr Recht, war nicht genug Aufmerksamkeit, Post entsprechend zu ändern. Sorry –

0

Was möchten Sie? Einfach COUNT(*) gibt Ihnen die "gewünschte" Antwort.

  • COUNT(*) ist in der Regel die Sache zu verwenden. Es zählt die Anzahl der Zeilen (nach der Filterung durch WHERE und vorbehaltlich GROUP BY
  • COUNT(col) üblich ist, aber oft nicht notwendig -. Zählt Reihen mit col IS NOT NULL
  • COUNT(DISTINCT col) legt fest, wie viele verschiedene Werte gibt es für col
  • ..
  • COUNT(DISTINCT col1, col2) legt fest, wie viele verschiedene Werte dort für die Kombination von col1 und col2 sind.

Wenn Sie wissen wollen, warum MySQL/MariaDB wählte diesen Syntax weglassen, können Sie die Leute fragen, die entwickelt der SQL-Standard.

+0

Ja, Sie haben das Problem: Warum haben Leute, die den SQL-Standard entwickelt haben, diese Syntax weggelassen? – zer0uno

Verwandte Themen