Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jak wyciagnac id, max(pole) posortowane wg daty
misty
post
Post #1





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

Ostrzeżenie: (0%)
-----


hej, mam problem z odpowiednim posortowaniem i wyciagnieciem danych z tabeli. Przyklad tabeli:

id | ilosc | data

i teraz - wyciagnac te id dla ktorych ilosc jest maksymalna kazdego dnia.
probowalam robic cos typu:

select id, max(ilosc) from tabela group by data

ale niestety id nie zgadzaly sie z max(ilosc).

moglby mnie ktos naprowadzic?

pzdr
Go to the top of the page
+Quote Post
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


A jak to robi człowiek? Najpierw dla każdej daty szuka maksymalnej wartości, a potem spradza jakie jest przy niej ID

Kod
SELECT
  id
FROM
  tabela AS t
CROSS JOIN (
  SELECT
    data, MAX(ilosc) AS ilosc
  FROM
    tabela
  GROUP BY
    data
) AS sq
USING (data, ilosc)
Go to the top of the page
+Quote Post
reaktor
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 2.01.2010

Ostrzeżenie: (0%)
-----


Mozna to rowniez zrobic unikajac CROSS JOIN ktory jest wygodny, ale nieefektywny dla bardzo duzych tabel:

  1. SELECT
  2. o.id, o.DATA, o.ilosc
  3. FROM tabela t
  4. JOIN
  5. (
  6. SELECT max(ilosc) AS maxil, DATA FROM tabela GROUP BY DATA
  7. ) x
  8. ON t.DATA=x.DATA AND t.ilosc=x.mail
Go to the top of the page
+Quote Post
Mchl
post
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


A w jaki sposób go unikasz, bo nie widzę?
(Innymi słowy, czym się różni Twoje zapytanie od mojego?)
Go to the top of the page
+Quote Post
reaktor
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 2.01.2010

Ostrzeżenie: (0%)
-----


Masz racje; wymadrzam sie, a tymczasem zapytania zostana wykonane identycznie.
Wobec tego zmieniam swoj komentarz na: "mozna jeszcze tak to ujac:" winksmiley.jpg

pozdrawiam

Aha, jest jedna roznica: Twoje nie zadziala np pod SQLServer, a moje zadziala smile.gif
Go to the top of the page
+Quote Post
Mchl
post
Post #6





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


Twoje nie zadziała nigdzie tongue.gif
Nie ma tabeli `o` winksmiley.jpg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 05:51