Problem z zapytaniem PostgreSql 8.1
awerskto@gmail.com - 20-10-2007 00:01
Problem z zapytaniem PostgreSql 8.1
Witam mam następujący problem mam jedna tabele z polami:
1 other_benchmarks random_1000_10_v2 Simulation 115 1 other_benchmarks if_nested_5x15_v3 Simulation 107 1 other_benchmarks case_nested_15x15_v2 Simulation 35 1 other_benchmarks shifter Simulation 146 1 other_benchmarks or_nr010 Simulation 147 1 other_benchmarks rising_1000_10_v2 Simulation 240 1 other_benchmarks clk_v3 Simulation 345 1 other_benchmarks if_nested_8x15 Simulation 119 1 other_benchmarks random_1000_100_v3 Simulation 196 1 other_benchmarks serial_200000 Simulation 144 1 other_benchmarks case_nested_4x16_v2 Simulation 76 1 other_benchmarks rising_1000_100_v2 Simulation 151 1 other_benchmarks or_nr100 Simulation 232 1 other_benchmarks rising_1000_1_v2 Simulation 198 1 other_benchmarks falling_1000_100_v3 Simulation 158 1 other_benchmarks shifter_non-zero Simulation 75 1 other_benchmarks case Simulation 167 1 other_benchmarks if_nested_15x15_v2 Simulation 115 2 other_benchmarks random_1000_20_v2 Simulation 225 2 other_benchmarks if_nested_5x25_v3 Simulation 207 2 other_benchmarks case_nested_25x25_v2 Simulation 35 2 other_benchmarks shifter Simulation 246 2 other_benchmarks or_nr020 Simulation 247 2 other_benchmarks rising_2000_20_v2 Simulation 240 2 other_benchmarks rising_2000_200_v2 Simulation 252 2 other_benchmarks or_nr200 Simulation 232 2 other_benchmarks rising_2000_2_v2 Simulation 298 2 other_benchmarks falling_2000_200_v3 Simulation 258 2 other_benchmarks shifter_non-zero Simulation 75 2 other_benchmarks case Simulation 267 2 other_benchmarks if_nested_25x25_v2 Simulation 212
moja kwerenda wyglada tak: SELECT public.compare.id, public.compare.to_do_id, public.machine_name.name as machine, public.compare.machine_id as mach_id, public.group_name.name as group_name, public.compare.group_id as group_id, public.benchmark.name as benchmark, public.compare.bench_id as bench_id, public.param.name as param_name, public.compare.param_id as param_id, public.compare.val_param as value
FROM public.compare INNER JOIN public.machine_name ON (public.compare.machine_id = public.machine_name.id) INNER JOIN public.group_name ON (public.compare.group_id = public.group_name.id) INNER JOIN public.benchmark ON (public.compare.bench_id = public.benchmark.id) INNER JOIN public.param ON (public.compare.param_id = public.param.id) WHERE public.compare.to_do_id = 125 AND public.param.id= '2' AND
public.compare.id BETWEEN
(SELECT to_do.compare_begin_id FROM to_do WHERE id=125)
AND
(SELECT to_do.comapre_end_id FROM to_do WHERE id=125) ;
ostatnia sekcja between mowi gdzie szukac w tabeli compare wynikow dla to_do_id 125 (tabela ma pare milionow rekordow) i teraz chodzi o zrobienie tego join'a ktory do dolaczonej tabeli bedzie mial inne to_do_id wiec bedzie trzeba podac widelki do wyszukania jego pozycji w tabeli.
i chcialbym otrzymac wynik w postaci :
other_benchmarks random_1000_10_v2 Simulation 115 225 other_benchmarks if_nested_5x15_v3 Simulation 107 207 .. .. .. .. other_benchmarks clk_v3 Simulation 345 null .. .. .. other_benchmarks if_nested_15x15_v2 Simulation 115 212
Za bardzo nie mam juz pomyslu jak rozwiazac ten problem :(
=?ISO-8859-2?Q?Mariusz_Marsza=B3kowski?= - 20-10-2007 00:02
awerskto@gmail.com <awerskto@gmail.com> napisał(a):
> Witam mam nast=EApuj=B1cy problem mam jedna tabele z polami: > > 1 other_benchmarks random_1000_10_v2 Simulation 115 > 1 other_benchmarks if_nested_5x15_v3 Simulation 107 > 1 other_benchmarks case_nested_15x15_v2 Simulation 35 > 1 other_benchmarks shifter Simulation 146 > 1 other_benchmarks or_nr010 Simulation 147 > 1 other_benchmarks rising_1000_10_v2 Simulation 240 > 1 other_benchmarks clk_v3 Simulation 345 > 1 other_benchmarks if_nested_8x15 Simulation 119 > 1 other_benchmarks random_1000_100_v3 Simulation 196 > 1 other_benchmarks serial_200000 Simulation 144 > 1 other_benchmarks case_nested_4x16_v2 Simulation 76 > 1 other_benchmarks rising_1000_100_v2 Simulation 151 > 1 other_benchmarks or_nr100 Simulation 232 > 1 other_benchmarks rising_1000_1_v2 Simulation 198 > 1 other_benchmarks falling_1000_100_v3 Simulation 158 > 1 other_benchmarks shifter_non-zero Simulation 75 > 1 other_benchmarks case Simulation 167 > 1 other_benchmarks if_nested_15x15_v2 Simulation 115 > 2 other_benchmarks random_1000_20_v2 Simulation 225 > 2 other_benchmarks if_nested_5x25_v3 Simulation 207 > 2 other_benchmarks case_nested_25x25_v2 Simulation 35 > 2 other_benchmarks shifter Simulation 246 > 2 other_benchmarks or_nr020 Simulation 247 > 2 other_benchmarks rising_2000_20_v2 Simulation 240 > 2 other_benchmarks rising_2000_200_v2 Simulation 252 > 2 other_benchmarks or_nr200 Simulation 232 > 2 other_benchmarks rising_2000_2_v2 Simulation 298 > 2 other_benchmarks falling_2000_200_v3 Simulation 258 > 2 other_benchmarks shifter_non-zero Simulation 75 > 2 other_benchmarks case Simulation 267 > 2 other_benchmarks if_nested_25x25_v2 Simulation 212 > > > moja kwerenda wyglada tak: > SELECT > public.compare.id, > public.compare.to_do_id, > public.machine_name.name as machine, > public.compare.machine_id as mach_id, > public.group_name.name as group_name, > public.compare.group_id as group_id, > public.benchmark.name as benchmark, > public.compare.bench_id as bench_id, > public.param.name as param_name, > public.compare.param_id as param_id, > public.compare.val_param as value > > FROM > public.compare > INNER JOIN public.machine_name ON (public.compare.machine_id =3D > public.machine_name.id) > INNER JOIN public.group_name ON (public.compare.group_id =3D > public.group_name.id) > INNER JOIN public.benchmark ON (public.compare.bench_id =3D > public.benchmark.id) > INNER JOIN public.param ON (public.compare.param_id =3D public.param.id) > WHERE > public.compare.to_do_id =3D 125 AND public.param.id=3D '2' AND > > public.compare.id BETWEEN > > (SELECT to_do.compare_begin_id FROM to_do WHERE id=3D125) > > AND > > (SELECT to_do.comapre_end_id FROM to_do WHERE id=3D125) ; > > ostatnia sekcja between mowi gdzie szukac w tabeli compare wynikow dla > to_do_id 125 (tabela ma pare milionow rekordow) i teraz chodzi o > zrobienie tego join'a ktory do dolaczonej tabeli bedzie mial inne > to_do_id wiec bedzie trzeba podac widelki do wyszukania jego pozycji w > tabeli. > > i chcialbym otrzymac wynik w postaci : > > other_benchmarks random_1000_10_v2 Simulation 115 225 > other_benchmarks if_nested_5x15_v3 Simulation 107 207 > .. > .. > .. > .. > other_benchmarks clk_v3 Simulation 345 null > .. > .. > .. > other_benchmarks if_nested_15x15_v2 Simulation 115 212 > > > > Za bardzo nie mam juz pomyslu jak rozwiazac ten problem :( >
Nie zrozumiałem na czym polega Twój problem. Może opisz prościej co chcesz zrobić?
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
awerskto@gmail.com - 20-10-2007 00:02
mam tabele:
id id_to_do group benchmark param value 1 1 other_benchmarks if_nested_15x15_v2 Simulation 115 2 2 other_benchmarks if_nested_15x15_v2 Simulation 234 2 2 other_benchmarks random_1000_20_v2 Simulation 225
i chce porownac 2 wartosci dla dowolnych to_do_id i uzysac tabele wynikowa
jakies_id group benchmark param value_1 value_2 1 other_benchmarks if_nested_15x15_v2 Simulation 115 234 2 other_benchmarks random_1000_20_v2 Simulation null 225 .. .. .. .. .. i tak dla wszystkich
hubert depesz lubaczewski - 21-10-2007 00:00
Dnia 19.10.2007 awerskto@gmail.com <awerskto@gmail.com> napisał/a: > i chce porownac 2 wartosci dla dowolnych to_do_id i uzysac tabele > wynikowa
czy nigdy się nie zdarzy tak, że będziesz miał > 2 wyników dla danego benchmarka?
depesz
-- quicksil1er: "postgres is excellent, but like any DB it requires a highly paid DBA. here's my CV!" :) http://www.depesz.com/ - blog dla ciebie (i moje CV)
awerskto@gmail.com - 21-10-2007 00:00
On 20 Paź, 09:19, hubert depesz lubaczewski <dep...@depesz.com> wrote: > Dnia 19.10.2007 awers...@gmail.com <awers...@gmail.com> napisał/a: > > > i chce porownac 2 wartosci dla dowolnych to_do_id i uzysac tabele > > wynikowa > > czy nigdy się nie zdarzy tak, że będziesz miał > 2 wyników dla danego > benchmarka? > > depesz > > -- > quicksil1er: "postgres is excellent, but like any DB it requires a > highly paid DBA. here's my CV!" :)http://www.depesz.com/- blog dla ciebie (i moje CV)
Zdazy sie :) Bo to sa benchmarki kazdego wydania softu wiec za kazdym razem porownoje sie ze starszym jezeli chodzi o szybkosci zuzycie pamieci etc. Wiec tak samo kolumny group benchmark param maja rozne wartosci w zaleznosci co jak i gdzie bylo testowane. Oczywiscie moge to zrobic w php :) ale ciekawsza zagadka bedzie to zrobic w sql.
awerskto@gmail.com - 21-10-2007 00:00
Zapomnialem dodac ze wartosc w to_to_id to kolejny benchmark wydania.
hubert depesz lubaczewski - 21-10-2007 00:00
Dnia 20.10.2007 awerskto@gmail.com <awerskto@gmail.com> napisał/a: >> czy nigdy się nie zdarzy tak, że będziesz miał > 2 wyników dla danego >> benchmarka? > Zdazy sie :) Bo to sa benchmarki kazdego wydania softu wiec za kazdym > razem porownoje sie ze starszym jezeli chodzi o szybkosci zuzycie > pamieci etc. Wiec tak samo kolumny group benchmark param maja rozne > wartosci w zaleznosci co jak i gdzie bylo testowane. Oczywiscie moge > to zrobic w php :) ale ciekawsza zagadka bedzie to zrobic w sql.
to pokaz takie dane, wraz z oczekiwanym wynikiem,. tylko mam prośbę - oszczędź nam takich długich wartości tekstowych - powodują one, że linijii się zawijają i przeczytanie danych rekordu staje się mocno utrudnione.
depesz
-- quicksil1er: "postgres is excellent, but like any DB it requires a highly paid DBA. here's my CV!" :) http://www.depesz.com/ - blog dla ciebie (i moje CV)
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?=
[PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?=
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
zanotowane.pldoc.pisz.plpdf.pisz.plnawschodzie.xlx.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 |
|