Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] grupowanie wg daty
Forum PHP.pl > Forum > Przedszkole
grzegorz_g
Szukam rozwiązania takie problemu.
Potrzebuje w najbardziej optymalny sposób pobrać ilośc stron zarejestrowanych w mojej bazie wg tygodni, miesięcy. Kłopot w tym że datę mam zapisaną w timestamp.

  1. <?php
  2. $q="select count() as ile from sites group by kiedy (przedziały 7 dniowe)";
  3. ?>
TomASS
  1. SELECT COUNT() AS Ile, WEEK(FROM_UNIXTIME(pole_timestamp)) AS Tydz FROM sites GROUP BY WEEK(FROM_UNIXTIME(pole_timestamp))


Nie zapomnij, że tygodnie można różnie liczyć (np. czy rok zaczyna się od środy czy od czwartku - ma to znaczenie), oraz że sam numer tygodnia nie określa Ci jednoznacznie czasu, musisz dołożyć do tego także rok.

Zamiast WEEK, możesz dać coś z tej, albo napisać swoją funkcję/procedurę.
grzegorz_g
kurcze jednak nie tak ja datę mam zapisaną jako pole bigint(20) , gdzie zapisauje czas unix. W takiej sytuacji wyciągniecie liczy stron rejestrowanych w danych tygodniach jest chyba niemożliwe , prawda ?
erix
Przecież napisał... FROM_UNIXTIME(pole_timestamp).
grzegorz_g
działa nie dokońca tak jak chciałem

zlicza ładnie tylko ze ja chce zrobić ile stron danego tyg. sie rejestrowało. Tylko jak ,minie rok to nastepne tygodnie bedzie mi doloczalo do juz istniejących a nie o to mi chodzi. Da się to jakoś ominąc?
TomASS
Chłopie weź się w garść! Wiem, że jest późno....

Zobacz co Ci zwróci:
  1. SELECT COUNT() AS Ile, WEEK(FROM_UNIXTIME(pole_timestamp)), YEAR(FROM_UNIXTIME(pole_timestamp)) AS Tydz FROM sites GROUP BY WEEK(FROM_UNIXTIME(pole_timestamp))


jeszcze mała podpowiedź... CONCAT
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.