Ich habe eine SQL-Anweisung, dieSQL Unterabfrage mit COUNT Hilfe
SELECT * FROM eventsTable WHERE columnName='Business'
Ich möchte hinzufügen, das als Unterabfrage funktioniert ...
COUNT(Business) AS row_count
Wie kann ich das tun?
Ich habe eine SQL-Anweisung, dieSQL Unterabfrage mit COUNT Hilfe
SELECT * FROM eventsTable WHERE columnName='Business'
Ich möchte hinzufügen, das als Unterabfrage funktioniert ...
COUNT(Business) AS row_count
Wie kann ich das tun?
Dies ist wahrscheinlich der einfachste Weg, nicht die schönste aber:
SELECT *,
(SELECT Count(*) FROM eventsTable WHERE columnName = 'Business') as RowCount
FROM eventsTable
WHERE columnName = 'Business'
Dies funktioniert auch ohne zu haben, Verwenden Sie einen group by
SELECT *, COUNT(*) OVER() as RowCount
FROM eventsTables
WHERE columnName = 'Business'
Möchten Sie die Anzahl der Zeilen erhalten?
SELECT columnName, COUNT(*) AS row_count
FROM eventsTable
WHERE columnName = 'Business'
GROUP BY columnName
kann nicht 'haben where'-Klausel in der Gruppe durch. Verwenden Sie 'Having' – Jim
@Jim - Sie können eine' where' Klausel mit 'group by' verwenden. Sie müssten 'having' verwenden, wenn Sie nach dem Ergebnis eines Aggregats filtern möchten, wenn Sie' group by' verwenden. – codingbadger
Unter der Annahme gibt es eine Spalte mit dem Namen Geschäft:
SELECT Business, COUNT(*) FROM eventsTable GROUP BY Business
SELECT e.*,
cnt.colCount
FROM eventsTable e
INNER JOIN (
select columnName,count(columnName) as colCount
from eventsTable e2
group by columnName
) as cnt on cnt.columnName = e.columnName
WHERE e.columnName='Business'
- Added Raum
+1 Over-Klausel ist * elegant * – gbn
Bitte beachten Sie, dass 'OVER' vom SQL-Standard nicht unterstützt wird und nicht in allen RDBMS verfügbar sein wird (z. B. [MySQL unterstützt es nicht]) (http: //stackoverflow.com/questions/6292679/mysql-using-correct-syntax-for-the-over-clause)). – McSonk