Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Jak wyświetlić 10 rekordów o najwyższej liczbie?
Forum PHP.pl > Forum > Przedszkole
casperii
Panowie mam 2 tabele jedna to produkty druga to zakup:

produkty:
id, nazwa_produktu

zakup:
id, produkt_id, ilosc.

Teraz chciałbym wyświetlić na liście 10 produktów które najczęściej są kupowane.
zakup.produkt_id = produkty.id

Jak wykonać poprawnie takie zapytanie.

Drugie pytanie w jaki sposób można by było wykonać procentowo przy każdym produkcie zainteresowaniem zakupem ?
Damonsson
Coś w tym stylu powinno zadziałać
  1. SELECT nazwa_produktu, SUM(ilosc) AS ilosc, (SUM(ilosc) / (SELECT SUM(ilosc) FROM zakup)) * 100 AS percentage FROM zakup
  2. JOIN produkty ON zakup.produkt_id = produkty.id
  3. GROUP BY zakup.produkt_id
  4. ORDER BY ilosc DESC
  5. LIMIT 10;
casperii
Dzięki @Damonsson za pomoc.

A jeszcze mam pytanie jak zsumować łączną kwotę produktów 1 zapytaniem i czy jest to możliwe.
tabela zakup (cena, waluta). Pole waluta przyjmuje wartości PLN, EUR, DOL

  1. SELECT SUM(cena) FROM zakup WHERE waluta = 'PLN'


Łączna kwota:
100 zł
150 euro
200 dolarów


Druga sprawa tabela zakup zawiera pole ilosc gdzie podana jest ilosc zakupowa. Czasem może tam być więcej niż 1. Chciałbym w przyszłości wyciągać średnią cenę zakupową za produkt ale nie mam pomysłu jak? Samo wyświetlenie to chyba już bym musiał działanie zrobić w pętli while $cena/$ilosc ? Ale jak wyliczyć średnią ze wszystkich rekordów? Dodatkowym utrudnieniem jest że cena jest w 3 walutach :-) czyli 3 x średnia.


Wymyśliłem sobie jeszcze jeden sposób , ale nie wiem czy nie przekombinowany , stworzenie kolejnej tabeli waluty (waluta, kurs, data).
Następnie curlem bym codziennie dodawał do bazy średni kurs dla DOL , EUR (tu mile widziane rady skąd pobierać).

Przy zapytaniu mysql SUM(cena) from zakup musiałbym dodać join waluty i porównywać date zakupu z datą kursu oraz walute z krajem.

Co o tym myślicie , który sposób lepszy?
Tomplus
Kod
SELECT SUM(cena) FROM zakup WHERE GROUP BY (waluta)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.