Próbuję wykonać następujące czynności w MySQL (patrz pseudo
kod)
SELECT DISTINCT gid
FROM `gd`
WHERE COUNT(*) > 10
ORDER BY lastupdated DESC
Czy istnieje sposób na zrobienie tego bez użycia (SELECT ...) w klauzuli WHERE, ponieważ wydawałoby się to marnotrawstwem zasobów.
mysql
count
aggregation
having
shgnInc
źródło
źródło
AND ((stock = 1 OR quantity > 0) OR (COUNT(v.id) > 0)
HAVING variations > 0 OR (stock = 1 OR quantity > 0)
Nie jestem pewien, co próbujesz zrobić ... może coś takiego
źródło
num
. W każdym razie +1 dla czystej składni (może to być moja konfiguracja lub ms ... ahh cóż).EDYTUJ (jeśli chcesz tylko gidy):
źródło
próbować
źródło
Tylko wersja akademicka bez klauzuli:
źródło
W klauzuli A WHERE nie może być funkcji agregujących (np. COUNT, MAX itp.). Dlatego zamiast tego używamy klauzuli HAVING. Dlatego całe zapytanie byłoby podobne do tego:
źródło
- wyszukiwanie stacji meteorologicznych z brakującymi zapisami półgodzinnymi
- odmiana yapiskan z gdzie… w… wybierz
źródło
myślę, że nie możesz dodać za
count()
pomocąwhere
. teraz zobacz, dlaczego ....where
to nie to samo cohaving
,having
oznacza, że pracujesz lub masz do czynienia z grupą i taką samą pracą liczenia, to także dotyczy całej grupy,teraz jak liczyć to działa jako cała grupa
utwórz tabelę i wprowadź jakieś identyfikatory, a następnie użyj:
znajdziesz wartości całkowite, które oznaczają jakąś grupę! tak też
where
jest dodane zcount()
;źródło
źródło