![]() |
![]() ![]() |
![]() |
--asa-- |
![]() ![]()
Post
#1
|
Goście ![]() |
jak posortować wyniki malejąco wg. GROUP BY ?
czyli mam rekordy: Kod pies pies kot pies krowa pies kot kot krowa i chce je mieć w takiej kolejności: krowa (bo występuje najmniej x) kot pies (bo występuje najwięcej) |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Poczytaj o COUNT i użyj go do wyświetlenia ilości wystąpień danego wyraz oraz do sortowania.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Masz rację.
|
|
|
--asa-- |
![]() ![]()
Post
#6
|
Goście ![]() |
phpion - działa
![]() ![]() ale ... sprawa sie komplikuje. mamy tabele: ssaki| gady | ryby | i rekordy kot|zmija|flądra pies|zmija|śledź kot|krokodyl|makrela pies|krokodyl|flądra i teraz czy da się w jednym zapytaniu wybrać i posortować je w zależności od ilości wystapien (tak jak w poprzednim przykladzie) by otrzymac listę posortowaną - i znacznik do jakiej grupy zwierzat nalezy ? P.S. bo robie chmurke tagow ![]() |
|
|
--asa-- |
![]()
Post
#7
|
Goście ![]() |
dane przykladowe trosze zle dobralem bo wieksozsc sie powtarza 2x ...
poprawiajac kot|zmija|flądra kot|krokodyl|śledź kot|krokodyl|makrela pies|krokodyl|makrela pies|krokodyl|makrela i chcial bym otrzymac: krokodyl - gad(4x) kot - ssak(3x) ... pies ssak (1x) |
|
|
-Gość- |
![]()
Post
#8
|
Goście ![]() |
Da sie ale wiecej z tym zamoty niz to warte.
Sugeruje normalizacje tablicy w nast sposob. ssaki|gady|ryby => |zwierzeta|rodzaj(varchar)| lub w osobnej tabeli rodzaje zwierzat i w kolumnie zwietrzeta kolumna zid laczaca sie z rodzajami zwierzat ale na twoje potrzeby wystarczy chyba |zwierzeta|rodzaj| wtedy mozesz latwo groupowac po kolumnach uzywajac group by () |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 22.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Sry nie bylem zalogowany.
Mowiac 'Da sie ale wiecej z tym zamoty niz to warte." mialem na mysli oczywiscie przy obecnej konstrukcji bazy. |
|
|
--asa-- |
![]()
Post
#10
|
Goście ![]() |
tylko nie moge zmienić układu tabeli ...
|
|
|
--asa-- |
![]()
Post
#11
|
Goście ![]() |
bo to jest tak że mam news. Do każdego newsa dodaje 6 tagów.
id|id_newsa|tag1|tag2|...|tag6 i teraz chce je zliczyc, i w zależności od tego na którym miejscu dany tag jest przypisać mu mnożnik - np. dla tag1: 2.0 a dla tag6 0.25. Pomnożyć ilosć wystapien przez ten mnoznik i wyswietlic w chmurce tagów. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 22.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zostaje ci przechwycenie nazw kolum i danych do tablic php i petlowanie przez to.
Generalnie nazwa kolumny nie sluzy do przechowywania danych w bazie danych tylko wiersze... SQL'em nic nie przychodzi mi do glowy aby grupowac dane z kolumny+nazwy kolumn. distinct i group by nie pomoga w identyfikacji typu dla danych. Zrob druga tablice i tam sobie to postaw tak jak napisalem. Bardzo prosto mozna to przerobic samymi zapytaniami sql. INSERT INTO NOWA BAZA (dane,zwierzotyp)VALUES (SELECT DISTINCT ssaki,(zwierzotyp) FROM ZLATABLICA ) EDIT napisz ty spokojnie calosc co to ma robic a nie tylko wyrywki i struktury.. Ten post edytował calebos 1.08.2008, 11:28:02 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 22:22 |