![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 6.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Mam tabele o takim schemacie:
id, nazwa, data 1, blablabla, 2012-04-12 18:26:33 2, blablabla, 2012-04-12 18:27:56 itd. Chciałbym pobrać wszystkie rekordy z danego dnia (załóżmy z 12 kwietnia) i posortować je w sposób malejący (w zależności od ilości wystąpień). Chodzi o to, że nazwy (wyszukiwane frazy) się powtarzają i w danym dniu może być wiele wyszukiwań na taką samą frazę. Jak w takim razie posortować te dane tak, żeby identyczne rekordy się zsumowały, czyli na przykładzie mamy 2 razy blablabla -> powinno zostać to zamienione na 1 rekord o nazwie blablabla i liczniku 2 (bo 2 takie same rekordy). Oczywiście wszystko zapisywane w osobnej tabeli. Czy jest jakaś funkcja która segreguje identyczne dane w zbiorze w w/w sposób ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
prościej jest to zrobić już w momencie dodawania danych do bazy danych przy użyciu INSERT ON DUPLICATE KEY UPDATE, i do obecnej tabeli po prostu dodać kolumne counter, a wyszukiwaną frazę zrobić kluczem głownym
jest taka funkcja GROUP BY i COUNT, możesz też użyć wyzwalaczy (trigger) przy insercie do tej tabeli by w nowej zapisywało podsumowanie Ten post edytował jaslanin 12.04.2012, 17:57:30 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 08:52 |