ďťż
 
[Oracle] - zapytanie SQL ďťż
 
[Oracle] - zapytanie SQL
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[Oracle] - zapytanie SQL



jerry - 11-05-2007 12:32
[Oracle] - zapytanie SQL
  Witam,
Chciałbym uniknać pisania funkcji przy następującym problemie:

Struktura tabeli:

A data
----------------------
2 22.02.2007
6 03.02.2007
3 03.12.2007
1 22.02.2006
12 22.02.2005
[....]

Dla każdego wiersza muszę otrzymać taki zestaw danych:

[data][średnia wartość kolumny A dla wybranego dnia i miesiąca ale dla
wszystkich lat]

Czyli dla wiersza:
2 22.02.2007

otrzymam:

[22.02.2007][5] - średnia wart kolumny A z dat: 22.02.2007, 22.02.2006,
22.02.2005

Czy da się otrzymać to jednym zapytaniem? Jeśli tak, poprosze o podpowiedzi.





=?ISO-8859-2?Q?Adam_P=B3aszczyca?= - 11-05-2007 12:32

  On Mon, 23 Apr 2007 15:02:20 +0200, jerry <jerry@niewazne.pl> wrote:

>
> A data
>----------------------
> 2 22.02.2007
> 6 03.02.2007
> 3 03.12.2007
> 1 22.02.2006
> 12 22.02.2005
>[....]
>
>Dla każdego wiersza muszę otrzymać taki zestaw danych:
>
>[data][średnia wartość kolumny A dla wybranego dnia i miesiąca ale dla
>wszystkich lat]
>
>Czyli dla wiersza:
>2 22.02.2007
>
>otrzymam:
>
>[22.02.2007][5] - średnia wart kolumny A z dat: 22.02.2007, 22.02.2006,
>22.02.2005

Czekaj, a która data dla danego A ma być wzięta? Największa?
>
>Czy da się otrzymać to jednym zapytaniem? Jeśli tak, poprosze o podpowiedzi.

Dać się powinno. Tak zupełnie na piechotę, to możesz użyć
podzapytania, które da wynik taki:

A Data string_z_daty_bez_roku
2 22.02.2007 22.02
6 03.02.2007 03.02
3 03.12.2007 03.12
1 22.02.2006 22.02
12 22.02.2005 22.02

I z tego już select prostacko:

select avg(A), max(data) from tabela
group by string_z_daty_bez_roku

--
___________ (R)
/_ _______ Adam 'Trzypion' Płaszczyca (+48 502) 122688
___/ /_ ___ ul. Na Szaniec 23/70, 31-560 Kraków, (012) 3783198
_______/ /_ http://trzypion.oldfield.org.pl/wieliczka/
___________/ GG: 3524356




=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 11-05-2007 12:32

  jerry wrote:
> A data
> ----------------------
> 2 22.02.2007
> 6 03.02.2007
> 3 03.12.2007
> 1 22.02.2006
> 12 22.02.2005
> [....]
>
> Dla każdego wiersza muszę otrzymać taki zestaw danych:
>
> [data][średnia wartość kolumny A dla wybranego dnia i miesiąca ale dla
> wszystkich lat]

select to_char(data, 'DD-MM'), avg(a) from T group by to_char(data, 'DD-MM')

--
Michał Kuratczyk




Robert Niestroj - 11-05-2007 12:32

  It was the 2007-04-23 15:02, when jerry wrote :

Podepnę się pod wątek :)
Mam dwie tabele bilet i klient. Chciałbym sprawdzić ile dany klient ma
biletów.

Poniższe zapytanie zwraca mi id_klienta oraz ilość wystąpień id_klienta
w tabeli bilet czyli ok.
select id_klienta, count (id_klienta) "ilosc" from bilet group by
id_klienta;

Teraz bym chciał z tabeli klient do tego przypisać imie_klienta i
nazwisko_klienta. Próbuję tak:

select b.id_klienta, count (b.id_klienta) "ilosc", k.imie_klienta,
k.nazwisko_klienta from bilet b, klient k where
(b.id_klienta=k.id_klienta) group by b.id_klienta ;

Zwraca mi to: Not a GROUP BY expression. Proszę o pomoc :-)

--
[ : Robert Niestroj ::::::: member of rally.pl te@m OPOLE :::::::::::: ]
[ : [JID: rniestroj@jabberpl.org] : [GG: 1734202] : [ICQ: 162506105] : ]
[ : ::::: [ http://firefox.pl ] :::::: [ http://rallyonline.pl ] ::::: ]
[ : "W porównaniu z nami Formuła 1 to przedszkole", Colin McRae 2001 : ]





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 11-05-2007 12:32

  Robert Niestroj wrote:
> It was the 2007-04-23 15:02, when jerry wrote :
>
> Podepnę się pod wątek :)
> Mam dwie tabele bilet i klient. Chciałbym sprawdzić ile dany klient ma
> biletów.
>
> Poniższe zapytanie zwraca mi id_klienta oraz ilość wystąpień id_klienta
> w tabeli bilet czyli ok.
> select id_klienta, count (id_klienta) "ilosc" from bilet group by
> id_klienta;
>
> Teraz bym chciał z tabeli klient do tego przypisać imie_klienta i
> nazwisko_klienta. Próbuję tak:
>
> select b.id_klienta, count (b.id_klienta) "ilosc", k.imie_klienta,
> k.nazwisko_klienta from bilet b, klient k where
> (b.id_klienta=k.id_klienta) group by b.id_klienta ;
>
> Zwraca mi to: Not a GROUP BY expression. Proszę o pomoc :-)

Podstawy. Dodaj imie i nazwisko do group by.

--
P.M.




=?ISO-8859-2?Q?Adam_P=B3aszczyca?= - 11-05-2007 12:32

  On Mon, 23 Apr 2007 22:29:36 +0200, Paweł Matejski
<madej@spam.madej.pl.eu.org> wrote:

>> Zwraca mi to: Not a GROUP BY expression. Proszę o pomoc :-)
>
>Podstawy. Dodaj imie i nazwisko do group by.

Albo najpierw zrób podzapytanie dające klient ID i ilośc wystąpień, a
potem złącz do nazwiska i imienia.
--
___________ (R)
/_ _______ Adam 'Trzypion' Płaszczyca (+48 502) 122688
___/ /_ ___ ul. Na Szaniec 23/70, 31-560 Kraków, (012) 3783198
_______/ /_ http://trzypion.oldfield.org.pl/wieliczka/
___________/ GG: 3524356
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle 19g +Insert +Insert +Insert... [Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?= =?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?= jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= [oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?= [oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?= MSSQL Express czy Oracle Express =?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?= =?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?= =?iso-8859-2?q?[oracle_10g]_jak_da=E6_grant_do_gv$=2E=2E=2E=2E_=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • bajkomoda.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com