Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wartość powtórzona największą ilość razy
Max Damage
post
Post #1





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

Ostrzeżenie: (0%)
-----


Cześć, potrzeba mi do pewnego zapytania, wartość która jest powtórzona w tabeli powiazania najwięcej razy. To są tabele z wynikami które są mi potrzebne do tego zapytania:

  1. mysql> SELECT * FROM kategorie_ksiazki WHERE id_ksiazki='42';
  2. +------------+--------------+
  3. | id_ksiazki | id_kategorii |
  4. +------------+--------------+
  5. | 42 | 7 |
  6. | 42 | 40 |
  7. | 42 | 56 |
  8. +------------+--------------+

  1. mysql> SELECT p.* FROM kategorie_ksiazki k JOIN powiazania p ON k.id_kategorii=p.child_id WHERE k.id_ksiazki='42';
  2. +-----------+----------+-------+
  3. | parent_id | child_id | depth |
  4. +-----------+----------+-------+
  5. | 7 | 7 | 0 |
  6. | 40 | 40 | 0 |
  7. | 7 | 40 | 1 |
  8. | 56 | 56 | 0 |
  9. | 40 | 56 | 1 |
  10. | 7 | 56 | 2 |
  11. +-----------+----------+-------+


Zapytanie które powinno mi zwrócić wartość 56:
  1. mysql> SELECT child_id FROM (SELECT child_id,COUNT(child_id) AS sm FROM powiazania p JOIN kategorie_ksiazki k ON k.id_kategorii=p.child_id WHERE k.id_ksiazki='42' GROUP BY child_id) AS acb WHERE acb.sm=MAX(sm);

Wywala mi : Invalid use of group function
Coś jest źle z końcowym warunkiem WHERE, ale nie wiem jak to poprawnie napisać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


Nie możesz mieć funkcji agregującej w klauzuli WHERE.
Sprawa się ułatwia, jeśli sobie uzmysłowimy, że 'największy' to inaczej 'pierwszy w kolejności na liście posortowanej malejąco'

Kod
SELECT
  child_id,
  COUNT(child_id) AS sm
FROM
  powiazania p
JOIN
  kategorie_ksiazki k
ON k.id_kategorii=p.child_id
  WHERE k.id_ksiazki='42'
GROUP BY child_id
ORDER BY sm DESC
LIMIT 1
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:23