ďťż
 
sql - problem z grupowaniem ďťż
 
sql - problem z grupowaniem
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

sql - problem z grupowaniem



redgda - 24-08-2007 00:00
sql - problem z grupowaniem
  witam, moj problem:
wyciagnac po 1 zdjeciu z kazdego dnia, takim ktore ma maksymalna
liczbe wyswietlen

tabela zdj, pola:
id, url, data, wyswietlen

probowalem tak:
SELECT id, nazwa, date( data_wprow ) as dzien , wyswietlen,
max( wyswietlen ) AS maks
FROM zdj
GROUP BY dzien
ORDER BY data_wprow

jest po 1 zdjeciu z kazdego dnia ale nie zawsze to ktore ma max liczbe
wyswietlen:

6575 nazwa1 2007-07-24 121 121
6596 nazwa2 2007-07-25 346 1052
6619 nazwa3 2007-07-27 1458 2004





Marcin - 24-08-2007 00:00

  redgda pisze:
> witam, moj problem:
> wyciagnac po 1 zdjeciu z kazdego dnia, takim ktore ma maksymalna
> liczbe wyswietlen
>
> tabela zdj, pola:
> id, url, data, wyswietlen
>
> probowalem tak:
> SELECT id, nazwa, date( data_wprow ) as dzien , wyswietlen,
> max( wyswietlen ) AS maks
> FROM zdj
> GROUP BY dzien
> ORDER BY data_wprow
>
> jest po 1 zdjeciu z kazdego dnia ale nie zawsze to ktore ma max liczbe
> wyswietlen:
>
> 6575 nazwa1 2007-07-24 121 121
> 6596 nazwa2 2007-07-25 346 1052
> 6619 nazwa3 2007-07-27 1458 2004
>

1. Jaka baza?

2. To zapytanie, które napisałeś, działało?

3. Co chcesz otrzymać dla danego dnia, jeśli w tym dniu było kilka zdjęć
o maksymalnej liczbie wyświetleń? Wszystkie zdjecia o tej liczbie
wyświetleń, jedno z nich - wszystko jedno które, czy jedno ale np. o
najmniejszym id?




redgda - 24-08-2007 00:00

 
> 1. Jaka baza?
mysql 5.0

> 2. To zapytanie, które napisa e , dzia a o?
dzialalo, ale nie tak jak chcialem

> 3. Co chcesz otrzyma dla danego dnia, je li w tym dniu by o kilka zdj
> o maksymalnej liczbie wy wietle ? Wszystkie zdjecia o tej liczbie
> wy wietle , jedno z nich - wszystko jedno które, czy jedno ale np. o
> najmniejszym id?- Ukryj cytowany tekst -

znalazlem juz pomoc:
http://forum.webhelp.pl/viewtopic.php?p=809996#809996

i rozwiazanie:
SELECT id_zdj, date(data) as data_dzien, wyswietlen
from zdj t1
where wyswietlen >0
and
wyswietlen = (
select max(wyswietlen)
from zdj t2
where data_dzien=date(t2.data)
)
order by data_dzien desc

ale faktycznie nie zwrocilem uwagi na to ze moze byc pare zdjec ktore
maja taka sama i zarazem maksymalna liczbe wyswietlen
jezeli wiesz jak zmodyfikowac zeby bylo tylko 1 (dowolne) to prosze o
pomoc




Marcin - 24-08-2007 00:00

  redgda pisze:
>> 1. Jaka baza?
> mysql 5.0
>
>> 2. To zapytanie, które napisa e , dzia a o?
> dzialalo, ale nie tak jak chcialem
>
>> 3. Co chcesz otrzyma dla danego dnia, je li w tym dniu by o kilka zdj
>> o maksymalnej liczbie wy wietle ? Wszystkie zdjecia o tej liczbie
>> wy wietle , jedno z nich - wszystko jedno które, czy jedno ale np. o
>> najmniejszym id?- Ukryj cytowany tekst -
>
> znalazlem juz pomoc:
> http://forum.webhelp.pl/viewtopic.php?p=809996#809996
>
> i rozwiazanie:
> SELECT id_zdj, date(data) as data_dzien, wyswietlen
> from zdj t1
> where wyswietlen >0
> and
> wyswietlen = (
> select max(wyswietlen)
> from zdj t2
> where data_dzien=date(t2.data)
> )
> order by data_dzien desc
>
> ale faktycznie nie zwrocilem uwagi na to ze moze byc pare zdjec ktore
> maja taka sama i zarazem maksymalna liczbe wyswietlen
> jezeli wiesz jak zmodyfikowac zeby bylo tylko 1 (dowolne) to prosze o
> pomoc
>

Zrobię tak, żeby był jeden wiersz dla jednej daty - ten o najmniejszym id:

SELECT id_zdj
, date(data) as data_dzien
, wyswietlen
FROM zdj
WHERE id_zdj IN (
SELECT min(id_zdj)
FROM zdj t1
WHERE wyswietlen > 0
AND wyswietlen = (
SELECT max(wyswietlen)
FROM zdj t2
WHERE date(t1.data)=date(t2.data)
)
GROUP BY date(t1.data), t1.wyswietlen
)
ORDER BY data_dzien DESC

Napisane na szybko, więc pewnie można lepiej...





Marcin - 24-08-2007 00:00

  redgda pisze:
>> 1. Jaka baza?
> mysql 5.0
>
>> 2. To zapytanie, które napisa e , dzia a o?
> dzialalo, ale nie tak jak chcialem
>
>> 3. Co chcesz otrzyma dla danego dnia, je li w tym dniu by o kilka zdj
>> o maksymalnej liczbie wy wietle ? Wszystkie zdjecia o tej liczbie
>> wy wietle , jedno z nich - wszystko jedno które, czy jedno ale np. o
>> najmniejszym id?- Ukryj cytowany tekst -
>
> znalazlem juz pomoc:
> http://forum.webhelp.pl/viewtopic.php?p=809996#809996
>
> i rozwiazanie:
> SELECT id_zdj, date(data) as data_dzien, wyswietlen
> from zdj t1
> where wyswietlen >0
> and
> wyswietlen = (
> select max(wyswietlen)
> from zdj t2
> where data_dzien=date(t2.data)
> )
> order by data_dzien desc
>
> ale faktycznie nie zwrocilem uwagi na to ze moze byc pare zdjec ktore
> maja taka sama i zarazem maksymalna liczbe wyswietlen
> jezeli wiesz jak zmodyfikowac zeby bylo tylko 1 (dowolne) to prosze o
> pomoc
>

A jeszcze mi przyszło do głowy coś takiego :

SELECT id_zdj
, date(data) as data_dzien
, wyswietlen
FROM zdj t1
WHERE id_zdj = (
SELECT id_zdj
FROM zdj t2
WHERE date(t1.data)=date(t2.data)
ORDER BY wyswietlen DESC
LIMIT 1
)
ORDER BY data_dzien DESC
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= =?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= =?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • quentinho.opx.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