zliczanie wierszy, za duzo wynikow
sd - 11-11-2005 11:41
zliczanie wierszy, za duzo wynikow
witam
dlaczego mysql zwrocil mi 4 wiersza po wykonaniu takiego zapytania: SELECT count(*) FROM targi_firma_branza AS tfb WHERE tfb.branza_id = 1 GROUP BY tfb.firma_id
baza ktorej to dotyczy:
FIRMA_BRANZA: firma_id branza_id podbranza_id
zadna kolumna nie jest unikalna, moga byc 3 firmy w jednej branzy, moze byc 3 branze do jednej firmy
wg mnie sa 4 firmy ktore maja branza_id = 1 a mysql zworcil:
2 2 1 1
doradzicie mi co jest nie tak w tym zapytaniu i dlaczego az 4 wiersze zwrocil mysql?
bede wdzieczny za wskazowki pozdrawiam
A.L.E.C - 11-11-2005 11:41
sd wrote:
> dlaczego mysql zwrocil mi 4 wiersza po wykonaniu takiego zapytania: > SELECT count(*) FROM targi_firma_branza AS tfb WHERE tfb.branza_id = 1 > GROUP BY tfb.firma_id > > wg mnie sa 4 firmy ktore maja branza_id = 1 > a mysql zworcil: > > 2 > 2 > 1 > 1
Wyciąg w tym zapytaniu dodatkowo kolumnę firma_id, to może cię oświeci. Piszesz, że są 4 firmy, dlatego są 4 rekordy. Napisz może jaki wynik chciałeś osiągnąć.
-- Aleksander 'A.L.E.C' Machniak http://alec.pl gg-2275252 LAN Management System Developer http://lms.alec.pl
Morff - 11-11-2005 11:41
A.L.E.C napisał(a): > sd wrote: > > >>dlaczego mysql zwrocil mi 4 wiersza po wykonaniu takiego zapytania: >>SELECT count(*) FROM targi_firma_branza AS tfb WHERE tfb.branza_id = 1 >>GROUP BY tfb.firma_id >> >>wg mnie sa 4 firmy ktore maja branza_id = 1 >>a mysql zworcil: >> >>2 >>2 >>1 >>1
bo grupujesz po firma_id a nie branża_id .. skoro są 4 firmy a po nich grupujesz to masz 4 wiersze
-- Pozdrawiam Morff ---------- AQQ 141151
sd - 11-11-2005 11:41
Morff napisał(a):
> bo grupujesz po firma_id a nie branża_id .. skoro są 4 firmy a po nich > grupujesz to masz 4 wiersze > >
czyli jak mam pobrac ilosc firm? jak juz pisalem mam w bazie zapisane
firma_id | branza_id | podbranza_id 1 | 2 | 2 1 | 3 | 1 1 | 2 | 3 | 2 | 1 5 | 2 | 2
i tutaj chcialem wynik 3 bo wiadomo jak juz zostala raz firma przypisana do branzy to bezsensu zebym dodawal ja znowu gdy pojawi sie znowu w innej podbranzy
z gory dziekuje za pomoc
A.L.E.C - 11-11-2005 11:41
sd wrote: > czyli jak mam pobrac ilosc firm?
ilość firm w danej branży?
SELECT COUNT(*) FROM table WHERE branza_id = x;
jeśli wpisy się nie powielają, lub
SELECT COUNT(DISTINCT firma_id) FROM table WHERE branza_id = x;
jeśli się powtarzają
> bo wiadomo jak juz zostala raz firma przypisana do branzy to bezsensu > zebym dodawal ja znowu gdy pojawi sie znowu w innej podbranzy
żeby się nie powtarzały, to najlepiej załóż dwukolumnowy klucz unikalny
-- Aleksander 'A.L.E.C' Machniak http://alec.pl gg-2275252 LAN Management System Developer http://lms.alec.pl
Morff - 11-11-2005 11:41
sd napisał(a):
> czyli jak mam pobrac ilosc firm? > jak juz pisalem mam w bazie zapisane
> firma_id | branza_id | podbranza_id > 1 | 2 | 2 > 1 | 3 | 1 > 1 | 2 | > 3 | 2 | 1 > 5 | 2 | 2 > > i tutaj chcialem wynik 3 > bo wiadomo jak juz zostala raz firma przypisana do branzy to bezsensu > zebym dodawal ja znowu gdy pojawi sie znowu w innej podbranzy
nie znam składni mysql-a , ale moze zadziała ..
select count(distinct firma_id) from targi_firma_branza WHERE branza_id=1
-- Pozdrawiam Morff ---------- AQQ 141151
sd - 11-11-2005 11:41
A.L.E.C napisał(a):
> SELECT COUNT(DISTINCT firma_id) FROM table WHERE branza_id = x; >
zaraz popatrze
> > żeby się nie powtarzały, to najlepiej załóż dwukolumnowy klucz unikalny >
ale ja chce zeby sie powtarzaly bo firma moze przynalezec tdo kilku branz
sd - 11-11-2005 11:41
Morff napisał(a):
> > nie znam składni mysql-a , ale moze zadziała .. > > select count(distinct firma_id) from targi_firma_branza WHERE branza_id=1 >
ooo wlasnie o to mi chodzilo dziala dobrze dziekuje bardzo kolega w poscie tez tak napisal tez mu bardzo dziekuje za odpowiedz
pozdrawiam
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MySQL] Skopiowanie =?ISO-8859-2?Q?warto=B6ci_z_jednego_po?==?ISO-8859-2?Q?la_do_drugiego_w_jednej_tabeli=2C_r=F3=BFne_?= =?ISO-8859-2?Q?wiersze=2E?=
[Oracle] =?ISO-8859-2?Q?=A3=B1czenie_wierszy_z_zapytania_?==?ISO-8859-2?Q?w_jeden_string?=
[mysql] =?ISO-8859-2?Q?po=B3=B1czenie_tabel_wg_kolumn=2C_?==?ISO-8859-2?Q?nie_wierszy?=
=?ISO-8859-2?Q?=5BOracle=5D_Porownanie_wierszy_z_tych_?==?ISO-8859-2?Q?samych_tablic_na_2_r=F3=BFnych_schematach?=
Jednoczesne sumowanie kolumn i wierszy oraz multiplikacja kolumn
[SQL] W jaki sposób zwrócić wiersze które NIE znadują się w 2 pozostałych kolumnach
Wstawianie nowego wiersza w przypadku jego braku podczas SELECT w PostgreSQL
MSSQL: =?iso-8859-2?Q?por=F3wnanie_dw=F3ch?= wierszy?
[MySQL] wiele =?ISO-8859-2?Q?rekord=F3w_-=3E_jeden_wiersz?=
SELECT: =?iso-8859-2?Q?po=B3=B1czenie?= kilku wierszy
zanotowane.pldoc.pisz.plpdf.pisz.plfantazia.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|