Mein Query zählt die Vorkommen JEDES wertes der spalte und gibt dies dann in mehreren Datensätzen aus, das ist für die Datenbank weit schonender. (auch bei nur 2 verschiedenen werten)
#10
Das ist klar, dass der Query mit Group By performanter ist. Aber schon beim Vorschlag mit UNION war das Ergebnis nicht das gewollte. Auch stehen die Datensätze in einer Spalte und nicht in einer Zeile.
Sql Count Mit Bedingung Der
Angemeldet vom Type boolean ist und der zu zählende Wert 'TRUE' ist ist das Select doppelt gemoppelt. SELECT -Sum(ET. Angemeldet) AS Anmeldungen -Sum(ET. Teilgenommen) AS Teilnahmen FROM tblEventteilnehmer AS ET; Für Ästheten: SELECT -Sum(clng(ET. Angemeldet)) AS Anmeldungen -Sum(clng(ET. Teilgenommen)) AS Teilnahmen FROM tblEventteilnehmer AS ET; cu CS "Johannes C. Laxander" < > schrieb im Newsbeitrag Johannes C. Laxander unread, Mar 22, 2010, 5:26:01 AM 3/22/10 to Hallo, danke, das ist ein guter Tipp! Das funktioniert aber nur bei den TRUE-Werten. Wenn ich auch die Datensätze zählen möchte die mit FALSE besetzt sind, muss ich die andere Variante wählen! -- Gruß, Johannes. Sekulla unread, Mar 22, 2010, 5:44:21 AM 3/22/10 to ok, oder dafür gibt es -Sum(NOT [ET. Angemeldet]) im Newsbeitrag Johannes C. Sql count mit bedingung video. Laxander unread, Mar 22, 2010, 7:00:01 AM 3/22/10 to OK, auch wieder recht:) Johannes. >
Sql Count Mit Bedingung Video
Werte der Tabelle brauchst:
SELECT COUNT(*) AS `anzahl` FROM `tabelle` GROUP BY `spalte`
Nebenbei möchte ich noch anmerken, dass ein Count auf eine Spalte langsamer ist als auf alle Datensätze einer Tabelle, da er dann nicht auf null-Werte überprüft
Zuletzt bearbeitet: 4. März 2007
#6
Wie soll es das ausgeben was casa74 moechte? Dafuer ist es aber sicherer. Sql count mit bedingung di. #7
es tut doch das gleiche, nur das er eben die Count-Werte zeilenweise auslesen muss, dafür aber ist es aber um ein vielfaches schneller, da er nicht 2 getrennte Abfragen machen und diese mergen, sondern nur eine Abfrage macht. sicherer? definiere sicherer? Es ist genau das gleiche wie nen Count auf eine Spalte, nur dass es um ein vielfaches schneller ist, da ihm egal ist, was in der Spalte steht. MySQL-Optimierung nennt man solche Dinge
#8
Er will das bekommen:
Ich verstehe nicht was du mit
meinst....
#9
das von ihm genannte ist ja ien Beispiel, also kann es ja sein, dass er 10-12 counts macht, das wären dann 11-13 Querys für die Datenbank (Count-Querys + mergen) das würde ziemlich auf die db-last gehen.
Ausdruck kann zwar eine Berechnung für ein Feld durchführen, Count ermittelt jedoch einfach nur die Anzahl von Datensätzen. Es spielt keine Rolle, welche Werte in den Datensätzen gespeichert sind. Die Count -Funktion zählt keine Datensätze, die NULL-Felder enthalten, es sei denn, Ausdruck stellt das Platzhalterzeichen Sternchen (*) dar. Wenn Sie ein Sternchen verwenden, berechnet Count die Gesamtanzahl der Datensätze, einschließlich der Datensätze, die NULL-Felder enthalten. SQL Abfrage mit count und nur ausgeben wenn count größer 1 von dedlfix, 21.09.2016 08:42 – SELFHTML Forum. Count( *) ist wesentlich schneller als Count( [ Spaltenname]). Setzen Sie das Sternchen nicht in Anführungszeichen (' '). Im folgende Beispiel wird die Anzahl von Datensätzen in der Tabelle "Bestellungen" berechnet:
SELECT Count(*) AS TotalOrders FROM Orders;
Wenn Ausdruck mehrere Felder identifiziert, zählt die Count -Funktion einen Datensatz nur, wenn mindestens eines der Felder nicht Null ist. Wenn alle angegebenen Felder gleich Null sind, wird der Datensatz nicht gezählt. Trennen Sie die Feldnamen durch ein kaufmännisches Und-Zeichen (&).