Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Jak sprawdzić, ile razy występuje dany rekord (ciąg) w zbiorze ?
Greg23
post 12.04.2012, 17:38:29
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 ?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post 13.04.2012, 13:19:56
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(Greg23 @ 12.04.2012, 18:38:29 ) *
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 ?

GROUP BY powinno wystarczyć, a jak ma to być skopiowane do innej tabeli, to zapytanie INSERT INTO ... SELECT ...:
  1. INSERT INTO `tabela2` (`nazwa`, `licznik`) SELECT `t1`.`nazwa`, COUNT(`t1`.`id`) AS `licznik` FROM `tabela1` `t1` WHERE `data` = '2012-04-12' GROUP BY `t1`.`nazwa` ORDER BY `licznik` DESC


Ten post edytował mortus 13.04.2012, 13:20:46
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 28.06.2025 - 21:37