MySQL – Zliczenie ilości rekordów w miesięcznym zestawieniu

komputerek_mysqlOpracowanie zbiorczych podsumowań oraz generowanie statystyk zawartości danej tabeli to jedno z bardziej żmudnych zadań do wykonania. Pewnie nie raz zastanawialiście się jak w szybki sposób zliczyć ilość rekordów wpisanych w danym miesiącu w danym roku. Funkcję zliczenia ilości rekordów zapisanych do tabeli w podziale na miesiące można wykonać za pomocą PHP, wykonując stosowne działania w oparciu o wynik zapytania zwracającego pełną zawartość tabeli. Nie jest to jednak zbyt optymalny sposób na uzyskanie wyniku.

W bazie danych MySQL (wykonując tylko jedno zapytanie), można bardzo szybko uzyskać zestawienie prezentujące liczbę rekordów zapisanych do tabeli w danym miesiącu danego roku. Poniżej prezentuję przykładowe zapytanie SQL zwracające taki wynik:

SELECT COUNT(*), DATE_FORMAT(date,'%Y-%m') as y_m FROM `page` GROUP BY y_m ORDER BY y_m DESC

Zapytanie to operuje na tabeli o następującej strukturze:

id_page (int 6)
title (varchar 32)
content (text)
date (datetime)

Zwrócony wynik będzie mieć następującą postać:

y_m liczba

2013-07 10
2013-06 5
2013-05 12

Powyższe zapytanie wykorzystuję funkcję DATE_FORMAT(), która pozwala na sformatowanie daty wedle określonych kryteriów. W tym przypadku wykorzystałem format %Y – rok w postaci 4 cyfr, %m – miesiąc w postaci 2 cyfr. Dodatkowo wykonane jest pogrupowanie oraz zliczenie rekordów dla tak zwróconej daty wpisu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *


6 × = dwanaście

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>