Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zliczanie wartości pól
xdriverspl
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 17.04.2013

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


witam, mam tabele

grupa | ilosc
gr1 | 3
gr2 | 2
gr3 | 6
gr1 | 2
gr2 | 4

chciałbym aby w wyniku zapytania otrzymać

gr1 | 5
gr2 | 6
gr3 | 6

jest jakis operator zliczajacy wartosci pol dla danej grupy? koniecznie wartosci nie ilosc tj w przypadku COUNT(*)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Nie.
Pisałem o czymś takim:
  1. SELECT grupa, SUM(ilosc) AS laczna_ilosc, (SUM(ilosc)/(SELECT SUM(ilosc) FROM tabela)*100) AS udzial FROM tabela
  2. GROUP BY grupa ORDER BY grupa ASC

(o ile dobrze pamiętam to nazywa się zapytanie skorelowane)
Jak widzisz dla każdego rekordu jest liczone
  1. SELECT SUM(ilosc) FROM tabela
Wynik tego jest czynnikiem dzielenia i na końcu to jest grupowane i sumowane. Pewnie optymalizator zapytań poradziłby sobie z tym, ale nie zawsze i nie na każdej bazie.
Zresztą można to zamienić na takie zapytanie (jest równoważne):
  1. SELECT grupa, SUM(ilosc) AS laczna_ilosc, (SUM(ilosc)/razem*100) AS udzial FROM tabela, (SELECT SUM(ilosc) razem FROM tabela) x
  2. GROUP BY grupa ORDER BY grupa ASC

Ale tu już sposób liczenia jest zupełnie inny - polecam zobaczyć plan zapytania (w PgAdmin "F7") dla wszystkich trzech zapytań. Nie sprawdzałem (z ciekawości zaraz to zrobię), ale myślę, że różnica będzie kosmiczna...

Go to the top of the page
+Quote Post

Posty w temacie
- xdriverspl   zliczanie wartości pól   17.05.2013, 07:15:11
- - mortus   SUM   17.05.2013, 07:27:21
- - Sephirus   [SQL] pobierz, plaintext SELECT grupa, SUM(ilo...   17.05.2013, 07:28:19
- - xdriverspl   dzięki a tak przy okazji... jakieś funkcje które...   17.05.2013, 11:22:32
- - mmmmmmm   Mnóstwo. Począwszy od wartosc/SUM(Wartosc), na fun...   17.05.2013, 12:53:05
- - xdriverspl   a jakieś przykłady? wertuje dokumentacje i nie nat...   17.05.2013, 13:38:43
- - Sephirus   Można to ogarnąć (najprościej IMO) podzapytaniem w...   17.05.2013, 14:17:14
- - mmmmmmm   Sum w podselekcie z grupowaniem?? Nawet postgresa ...   17.05.2013, 17:28:32
|- - xdriverspl   Cytat(mmmmmmm @ 17.05.2013, 18:28:32 ...   18.05.2013, 15:15:04
- - mmmmmmm   WITH tabela AS ( SELECT 'a' grupa, 5 ilosc...   19.05.2013, 18:43:16
|- - xdriverspl   Cytat(mmmmmmm @ 19.05.2013, 19:43:16 ...   20.05.2013, 07:32:07
- - mmmmmmm   Najprostsza przeróbka to: [SQL] pobierz, plaintext...   20.05.2013, 10:02:54
|- - xdriverspl   Cytat(mmmmmmm @ 20.05.2013, 11:02:54 ...   21.05.2013, 08:56:27
- - mmmmmmm   Nie. Pisałem o czymś takim:[SQL] pobierz, plaintex...   21.05.2013, 09:31:27
- - xdriverspl   witam, dalej podrąże temat mam tabele: id_kontr...   5.06.2013, 14:11:22
- - mmmmmmm   A konkretnie to co chcesz zrobić?[SQL] pobierz, pl...   5.06.2013, 15:39:49
|- - xdriverspl   Cytat(mmmmmmm @ 5.06.2013, 16:39:49 )...   6.06.2013, 09:46:02
- - mmmmmmm   [SQL] pobierz, plaintext SELECT ilosc, Count(*...   6.06.2013, 10:42:30
- - xdriverspl   Witam ponownie, mam takie oto zapytanie: [SQL] po...   17.06.2013, 11:56:07
- - mmmmmmm   [SQL] pobierz, plaintext SELECT grupa, Sum(ilo...   17.06.2013, 13:42:47


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: 9.10.2025 - 07:53