Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Problem z zapytaniem i GROUP BY
Forum PHP.pl > Forum > Bazy danych > MySQL
maniak11
Witam, mam spory problem z zapytaniem SQL, do tego stopnia ,że nie wiem czy jest to wykonalne, mianowicie mam zapytani:

kolumny
sub_id, opis_id, waga, srednia
2, 15, 30, 2.08
2, 16, 40, 1.16
3, 18, 20, 2.45
2, 20, 25, 2.01

przy czym kolumna 'srednia' jest wynikiem zapytania (AVG(points)*(waga/100) ) as srednia
a potem grupowanie po: GROUP BY sub_id, opis_id

i teraz pytanie: da się zrobić to zapytanie tak aby wartośći "srednia" były zsumowane wszędzie tam gdzie "sub_id" jest identyczne? Czyli wyników będzie tyle ile jest różnych "sub_id"

W tym przypadku powinno być coś takiego:

sub_id, opis_id, waga, srednia
2,'cokolwiek','cokolwiek', 5,25 (2,08+1,16+2,01)
3, 'cokolwiek','cokolwiek',2,45

Jak dam samo GROUP BY sub_id to "srednia" nie bedzie prawidlowa

Czy da się zrobi coś takiego? Siedzę nad tym już 3h i wymiękam powoli:(
artega
Użyj funkcji SUM
  1. SELECT sub_id, opis_id, waga, SUM(srednia) AS srednia FROM tabela GROUP BY sub_id
maniak11
Gdyby to było takie proste to bym nawet nie pisał tutaj, ale dzięki i tak za pomoc.

Chodzi o to że taki wynik jaki napisałem jest tylko i wyłącznie w przypadku jak użyje GROUP BY sub_id, opis_id, ehh no nic, będę musiał się jeszcze sporo namordować z tym czuje coś.
nospor
Musisz uzyc podzapytanie.
Zapytanie głowne będzie sumowac srednie, a srednie beda wyliczane wlasnie w podzapytaniu
piotrooo89
możesz napisać jak ty to robisz. tzn jak wyświetlasz te rekordy to może coś będzie można pomóc i podaj kolumny w tabeli
artega
Być może ten przykład coś rozjaśni.
  1. SELECT sub_id, opis_id, waga, SUM((SELECT AVG(points)*(waga/100) FROM tabela t2 WHERE t2.id=t1.id)) FROM tabela t1 GROUP BY sub_id
nospor
@artega chodzilo mi, by te podzapytanie bylo we from a nie w sum.
No chyba ze ci dziala.
artega
Cytat
@artega chodzilo mi, by te podzapytanie bylo we from a nie w sum.
No chyba ze ci dziala.

Działa, poprawnie składniowe a nawet wyniki poprawne winksmiley.jpg tylko czy zgodnie z ideą maniak11?
maniak11
Dzięki wszystkim za pomoc, musiałem rozwiązać to za pomocą php, choć zapewne działa to ciut wolniej bo z tego co wiem silnik bazodanowy znacznie szybciej przetwarza dane niż php. Dzięki i tak za pomoc wszystkim.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.