Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> COUNT różnych pól na jedenej tabeli, dwa różne 'group by' na jednej tbl ?
DJ ProG
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 2
Dołączył: 27.08.2008

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


Witam.

Problem wydaje się prozaiczny, ale w praktyce pokazuje swoje prawdziwe oblicze.
Mianowicie weźmy, że mam taką oto tabelę:
Kod
| browser | os      |
+---------+---------+
| Firefox | Windows |
| Firefox | Linux   |
| Safari  | MacOS   |
| IE      | Windows |
| Firefox | MacOS   |
| Opera   | Linux   |
| IE      | Windows |
| Firefox | Windows |
| Firefox | Linux   |
| Opera   | MacOS   |

Jako, że danych mam sporo, podzapytaniem pobieram te potrzebne - powiedzmy, że do powyższej postaci.
Problem? Jak w jednym zapytaniu pobrać ilość tych samych komórek?
Chcę, by zapytanie zwróciło coś na kształt Firefox - 5, IE - 2, Opera - 2, Safari - 1, Linux - 3, MacOS - 3, Windows - 4.

I w tym cały problem. Bo, jak wiadomo, definiując np. GROUP BY browser, os dostaniemy całkowicie inny rezultat...
a nie mam pojęcia, czy można robić dwa osobne SELECTy i GROUP BY na jednej tabeli... w gwoli wyjaśnienia - upieram się przy tej jednej tabeli, ponieważ - jak już nadmieniłem - dane pobieram podzapytaniem, a że jest ich naprawdę dużo (po filtracji zwracane jest od paruset do paru k rekordów) nie mogę sobie pozwolić na ponowne wykonanie podzapytania...

Tak więc jeśli ktoś ma jakiekolwiek pomysły, uwagi, sposoby na wykorzystanie tej jednej tabeli (jakieś jej skopiowanie, może nadawanie podwójnych aliasów?) czy osobne GROUPy będę wdzięczny... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Ja bym próbował tak:
  1. ( SELECT COUNT(*), browser, 'browser' AS typ FROM tabelka GROUP BY browser )
  2. UNION
  3. ( SELECT COUNT(*), os, 'os' AS typ FROM tabelka GROUP BY os )


Ten post edytował sowiq 28.07.2009, 21:17:46
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: 22.08.2025 - 13:22