Mam instrukcję SQL, która działapodzapytanie SQL z hrabią pomoc
SELECT * FROM eventsTable WHERE columnName='Business'
chcę dodać to jako podzapytania ...
COUNT(Business) AS row_count
jaki sposób mogę to zrobić?
Mam instrukcję SQL, która działapodzapytanie SQL z hrabią pomoc
SELECT * FROM eventsTable WHERE columnName='Business'
chcę dodać to jako podzapytania ...
COUNT(Business) AS row_count
jaki sposób mogę to zrobić?
Jest to chyba najprostszy sposób, nie najładniejszy choć:
SELECT *,
(SELECT Count(*) FROM eventsTable WHERE columnName = 'Business') as RowCount
FROM eventsTable
WHERE columnName = 'Business'
ta będzie również pracować bez konieczności używać group by
SELECT *, COUNT(*) OVER() as RowCount
FROM eventsTables
WHERE columnName = 'Business'
Chcesz uzyskać liczbę wierszy?
SELECT columnName, COUNT(*) AS row_count
FROM eventsTable
WHERE columnName = 'Business'
GROUP BY columnName
Nie można mieć 'where' klauzula grupy przez. Użyj 'Posiadanie' – Jim
@Jim - Możesz użyć klauzuli' where' z 'group by'. Będziesz musiał użyć 'mającego', jeśli chcesz filtrować wynik agregatu podczas używania 'group by'. – codingbadger
Zakładając, że jest to kolumna o nazwie biznesu:
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'
- Dodano przestrzeń
+1 Klauzula over jest * elegancki * – gbn
Należy pamiętać, że 'OVER' nie jest obsługiwany przez standard SQL i nie będzie dostępny dla wszystkich RDBMS (na przykład [MySQL go nie obsługuje] (http: //stackoverflow.com/questions/6292679/mysql-using-correct-syntax-for-over-over-clause)). – McSonk