Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Zapytanie SELECT COUNT
simon86
post 30.06.2012, 19:22:50
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 2.11.2008

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


Witam. Chciałbym prosić o poradę wink.gif. Pytanie moje jest takie, czy w zapytaniu SELECT COUNT można zliczać rekordy nie tyle co identyczne, ale podobne??snitch.gif
Przykładowa sytuacja:
System zgłoszeń. Pani zgłasza zepsuty komputer. Jego numer inwentarzowy to np. T-7-2/12345. Pani zgłosiła go za pierwszym razem pod nazwą 12345, natomiast za drugim razem zgłosiła go pod nazwą /12345. Czy można to wziąć pod uwage w zapytaniu SELECT COUNT??

Ten przykład jest mi potrzebny, ale byłby lepszy gdyby można było zliczać rekordy podobne (nie identyczne) - a tego brakuje w poniższym zapytaniu:
SELECT nr_zest, COUNT(nr_zest) as ile FROM zgloszenia WHERE typ='Informatyczna' GROUP BY nr_zest ORDER BY ile DESC LIMIT 10

Proszę o wskazówki smile.gif

Ten post edytował simon86 30.06.2012, 19:23:39
Go to the top of the page
+Quote Post
pmir13
post 30.06.2012, 20:58:41
Post #2





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

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


Jest to możliwe jeśli precyzyjnie zdefiniujesz podobieństwo, przykładowo
  1. SELECT SUBSTRING(nr_zest, -5) AS sam_numer,
  2. COUNT(*) AS ile
  3. FROM zgloszenia
  4. WHERE typ='Informatyczna'
  5. GROUP BY sam_numer
  6. ORDER BY ile DESC LIMIT 10

Teoretycznie można nawet sobie funkcję zdefiniować, która by z podanej nazwy zgłoszenia robiła jakąś unormowaną i wstawić zamiast SUBSTRING, to wszystko jednak będzie miało zły wpływ na wydajność takiej bazy. Nie po to wymyślono indeksy żeby dobrowolnie z nich rezygnować robiąc jakieś dodatkowe działania na tym co grupujemy. Zgłoszenia powinny mieć dokładnie ustalony format i od tego jest aplikacja, by Pani nie miała możliwości wpisać tego samego zgłoszenia pod wieloma różnymi numerami. Ewentualnie aplikacja powinna to robić automatycznie, a jeśli możliwa jest sytuacja gdzie potrzeba byłoby więcej numerów to jakieś inne pole powinno służyć do jednoznacznej identyfikacji.
Go to the top of the page
+Quote Post

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: 17.06.2025 - 21:50