J'ai une instruction SQL qui fonctionneSQL avec sous-requête COUNT aide
SELECT * FROM eventsTable WHERE columnName='Business'
Je veux ajouter cela comme une sous-requête ...
COUNT(Business) AS row_count
Comment puis-je cela?
J'ai une instruction SQL qui fonctionneSQL avec sous-requête COUNT aide
SELECT * FROM eventsTable WHERE columnName='Business'
Je veux ajouter cela comme une sous-requête ...
COUNT(Business) AS row_count
Comment puis-je cela?
Ceci est probablement la meilleure façon, pas la plus jolie que:
SELECT *,
(SELECT Count(*) FROM eventsTable WHERE columnName = 'Business') as RowCount
FROM eventsTable
WHERE columnName = 'Business'
Cela permettra également de travailler sans avoir à utiliser un group by
SELECT *, COUNT(*) OVER() as RowCount
FROM eventsTables
WHERE columnName = 'Business'
Voulez-vous obtenir le nombre de lignes?
SELECT columnName, COUNT(*) AS row_count
FROM eventsTable
WHERE columnName = 'Business'
GROUP BY columnName
ne peut pas avoir 'WHERE' clause dans le groupe par. Utilisez 'Having' – Jim
@Jim - Vous pouvez utiliser une clause' where' avec 'group by'. Vous auriez besoin d'utiliser 'having 'si vous vouliez filtrer le résultat d'un agrégat en utilisant' group by'. – codingbadger
Si l'on suppose il y a une colonne entreprise nommée:
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'
- Espace Ajouté
+1 La clause over est * élégante * – gbn
Veuillez noter que 'OVER' n'est pas supporté par le standard SQL, et il ne sera pas disponible sur tous les SGBDR (par exemple, [MySQL ne le supporte pas] (http: //stackoverflow.com/questions/6292679/mysql-using-correct-syntax-for-the-over-clause)). – McSonk