![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 2.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Chciałbym prosić o poradę
![]() ![]() 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 ![]() Ten post edytował simon86 30.06.2012, 19:23:39 |
|
|
![]()
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
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. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 17.06.2025 - 21:50 |