Marcin Kapusta

Marcin Kapusta iOS
Developer/Software
Developer/Music
Producer

Temat: Problem z ułożeniem zapytania do bazy danych...

Witajcie...

Załóżmy, że mam taką tabele:


id_miejsca name id_ogloszenia
3084241 Sulechów 1
3084241 Sulechów 1
3091969 Międzyrzecz 1
3091969 Międzyrzecz 2
3091969 Międzyrzecz 3
3085495 Słubice 1
3080165 Zielona Góra 1
3080165 Zielona Góra 1
3080165 Zielona Góra 2
3084241 Sulechów 2


Wiem dane się duplikują, ale to jest wynik bardziej skomplikowanego zapytania z różnych tabel.

Chciałbym, żeby w wyniku zapytania była informacja dla poszczególnych miejscowości i ilość ogłoszeń jakie należą do tej miejscowości. Czyli wyniki powinny być takie:


id_miejsca name ilosc_ogloszen
3084241 Sulechów 2
3091969 Międzyrzecz 3
3085495 Słubice 1
3080165 Zielona Góra 2


Czy da się zrobić takie zapytanie w oparciu o powyższą tabelę? Z góry bardzo dziękuje jeśli ktoś mnie nakieruje na dobrą drogę...
Tomasz M.

Tomasz M. never go full
retard!

Temat: Problem z ułożeniem zapytania do bazy danych...

Tip: GROUP BY / COUNT
Jakub Fila

Jakub Fila Inżynieria / finanse
/ zarządzanie

Temat: Problem z ułożeniem zapytania do bazy danych...

SELECT count(DISTINCT id_ogloszenia) FROM nazwa_tabeli WHERE name="tu nazwa miejscowości"

lub

SELECT count(DISTINCT id_ogloszenia) FROM nazwa_tabeli WHERE id_miejsca="tu id miejscowości"

Zakładając, że mapowanie id_miejsca na name jest jednoznaczne, do WHERE wybrałbym tę kolumnę, która jest indeksowana.
Marcin Kapusta

Marcin Kapusta iOS
Developer/Software
Developer/Music
Producer

Temat: Problem z ułożeniem zapytania do bazy danych...

Tomasz M.:
Tip: GROUP BY / COUNT

Walcze z Group by i Count od kilku godzin i nie wychodzi.

Jak dam Group By id_ogloszenia to mi nie wyjdzie bo zgrupuje np Sulechów i Międzyrzecz a Count zliczy 6. Chyba, że można jakoś inaczej to wykorzystać.

>SELECT count(DISTINCT id_ogloszenia) FROM nazwa_tabeli WHERE id_miejsca="tu
>id miejscowości"

Tak, ale to zapytanie zakłada wynik dla konkretnej miejscowości a ja chce taki raport dla wszystkich.
Łukasz Kwietniewski

Łukasz Kwietniewski Projektant
techniczny,
specjalista

Temat: Problem z ułożeniem zapytania do bazy danych...

chwilka po co warunki, jak tu tylko zliczyć trzeba rekordy?
SELECT id_ogloszenia, name, count(*) as ilosc_ogloszen
FROM table_name
GROUP BY id_ogloszenia, name;

i pozamiatane :)
a jeszcze w przykładzie raportu, Zielona Góra powinna mieć chyba 3 zamówienia? :PŁukasz Kwietniewski edytował(a) ten post dnia 24.05.11 o godzinie 21:57
Marcin Kapusta

Marcin Kapusta iOS
Developer/Software
Developer/Music
Producer

Temat: Problem z ułożeniem zapytania do bazy danych...

Łukasz Kwietniewski:
chwilka po co warunki, jak tu tylko zliczyć trzeba rekordy?
SELECT id_ogloszenia, name, count(*) as ilosc_ogloszen
FROM table_name
GROUP BY id_ogloszenia, name;

i pozamiatane :)
a jeszcze w przykładzie raportu, Zielona Góra powinna mieć chyba 3 zamówienia? :P

Dziękuje Ci bardzo za zainteresowanie...

Nie to nie jest właśnie takie proste:
Jak widzisz dla Zielonej Góry są ogłoszenia 1 i 2 (1 występuje dwa razy, ale chciałbym by była liczona jako raz bo jest to jedno ogłoszenie)

Twoje zapytanie zwróci mi np. 3 wiersze z Międzyrzeczem kiedy powinien być jeden wiersz dla każdego miejsca i ilość różnych ogłoszeń dla tej miejscowości...

konto usunięte

Temat: Problem z ułożeniem zapytania do bazy danych...

SELECT id_miejsca,name,count(DISTINCT id_ogloszenia) FROM nazwa_tabeli group by id_miejsca,name
Tomasz M.

Tomasz M. never go full
retard!

Temat: Problem z ułożeniem zapytania do bazy danych...

Kolejny tip: DISTINCT
Łukasz Kurowski

Łukasz Kurowski Usque Ad Finem

Temat: Problem z ułożeniem zapytania do bazy danych...

Marcin Kapusta:
Czy da się zrobić takie zapytanie w oparciu o powyższą tabelę? Z góry bardzo dziękuje jeśli ktoś mnie nakieruje na dobrą drogę...

W sql-u wszystko się da ;)


SELECT id_miejsca, name, count(distinct id_ogloszenia) as ilosc_ogloszen
FROM table_name
GROUP BY id_miejsca, name;
Marcin Kapusta

Marcin Kapusta iOS
Developer/Software
Developer/Music
Producer

Temat: Problem z ułożeniem zapytania do bazy danych...

>SELECT id_miejsca, name, count(distinct id_ogloszenia) as ilosc_ogloszen
>FROM table_name
>GROUP BY id_miejsca, name;

Tak jest! To jest właśnie to!

Czy ktoś z Was byłby zainteresowany dyskusją nad pewną strukturą tabel, której zadaniem jest przetrzymywanie połączeń pomiędzy miastami? Przebudowuje strukturę w moim serwisie eDojazd.pl tak, żeby działała wydajniej i pozwalała zliczać statystyki wyszukiwania poszczególnych połączeń.

Za powyższe zapytanie bardzo dziękuje!
Łukasz Kwietniewski

Łukasz Kwietniewski Projektant
techniczny,
specjalista

Temat: Problem z ułożeniem zapytania do bazy danych...

Marcin Kapusta:
Łukasz Kwietniewski:
chwilka po co warunki, jak tu tylko zliczyć trzeba rekordy?
SELECT id_ogloszenia, name, count(*) as ilosc_ogloszen
FROM table_name
GROUP BY id_ogloszenia, name;

i pozamiatane :)
a jeszcze w przykładzie raportu, Zielona Góra powinna mieć chyba 3 zamówienia? :P

Dziękuje Ci bardzo za zainteresowanie...

Nie to nie jest właśnie takie proste:
Jak widzisz dla Zielonej Góry są ogłoszenia 1 i 2 (1 występuje dwa razy, ale chciałbym by była liczona jako raz bo jest to jedno ogłoszenie)

Twoje zapytanie zwróci mi np. 3 wiersze z Międzyrzeczem kiedy powinien być jeden wiersz dla każdego miejsca i ilość różnych ogłoszeń dla tej miejscowości...
no i wszystko jasne, dlatego się dopytywałem o te wyniki, ale widzę że koledzy po fachu już wszystko wyjaśnili :P

konto usunięte

Temat: Problem z ułożeniem zapytania do bazy danych...

Marcin Kapusta:
>SELECT id_miejsca, name, count(distinct id_ogloszenia) as ilosc_ogloszen
>FROM table_name
>GROUP BY id_miejsca, name;

Tak jest! To jest właśnie to!

Czy ktoś z Was byłby zainteresowany dyskusją nad pewną strukturą tabel, której zadaniem jest przetrzymywanie połączeń pomiędzy miastami? Przebudowuje strukturę w moim serwisie eDojazd.pl tak, żeby działała wydajniej i pozwalała zliczać statystyki wyszukiwania poszczególnych połączeń.

Za powyższe zapytanie bardzo dziękuje!


hej : )

jaka rdbms oraz jakbyś dał rade przedstawić część schematu biznesowego aplikacji.

Ł

konto usunięte

Temat: Problem z ułożeniem zapytania do bazy danych...

Eh już rozwiązane więc nie będę wklejać :PRafał Czarkowski edytował(a) ten post dnia 25.05.11 o godzinie 19:31

konto usunięte

Temat: Problem z ułożeniem zapytania do bazy danych...

Miał być paszkwil ale widzę że Łukasz rozwiązał...Piotr Likus edytował(a) ten post dnia 25.05.11 o godzinie 23:23



Wyślij zaproszenie do