Autor | Zpráva | ||
---|---|---|---|
danhill Profil |
#1 · Zasláno: 3. 10. 2016, 18:19:38
Ahoj,
prosím o pomoc s dotazem. Mám tabulku a v ní: |id|code| ---------- 1|22| 2|15| 3|22| 4|15| 5|11| 6|22| A potřebuji aby výsledek vypadal takto: |id|code|pocet| ---------- 1|22|3| 2|15|2| 3|22|3| 4|15|2| 5|11|1| 6|22|3| Samozřejmě,že tohle mi nefunguje,protože výsledek je jeden řádek s počtem 6 SELECT *,COUNT(code) as pocet FROM tabulka Tohle už je lepší,ale zase to nefunguje, protože pocet je vždy samozrejmě 1 SELECT *,COUNT(code) as pocet FROM tabulka GROUP BY ID Myslím,že pro vás to bude hračka. Děkuji moc. |
||
juriad Profil |
#2 · Zasláno: 3. 10. 2016, 18:23:47
V poddotaze si spočítáš počty výskytů, a ty pak připojíš k celé tabulce.
SELECT t.*, p.pocet FROM tabulka t JOIN ( SELECT code, COUNT(*) AS pocet FROM tabulka GROUP BY code ) x ON x.code = t.code ORDER BY t.id |
||
danhill Profil |
#3 · Zasláno: 3. 10. 2016, 18:30:41
woow děkuji, to je rychlest - ušetřil jsi mi minimálně dvě hodiny bádání pokus/omylů ... :)
Jen poddotaz - já vím,že jsem na ty spojené dotazy lempl a pořád s tím bojuju,ale nemělo by tam být INNER JOIN? Každopádně děkuji moc. |
||
pcmanik Profil |
#4 · Zasláno: 3. 10. 2016, 18:31:46
danhill:
JOIN = INNER JOIN iný rozdiel v tom nieje. |
||
Časová prodleva: 3 dny
|
|||
Kajman Profil |
#5 · Zasláno: 6. 10. 2016, 15:56:58
Pokud může code nabývat null hodnoty, tak je potřeba dotaz upravit. V mysql by stačilo místo rovnítka dát <=>.
|
||
Časová prodleva: 8 let
|
0