ďťż
 
wielokrotne sortowanie ďťż
 
wielokrotne sortowanie
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

wielokrotne sortowanie



csh - 31-08-2007 00:13
wielokrotne sortowanie
  Witam

Czy jest mozliwosc posortowania wyniku gdy wykonalismy juz LIMIT ?
przyklad jaki mnie interesuje:

SELECT tag, COUNT(*) as count FROM video_tags GROUP BY tag ORDER BY
count DESC LIMIT 30

teraz rekordy jakie otrzymam beda posortowane od najwiekszego, czy
jest mozliwosc posortowania tego wyniku (juz po wykonaniu LIMIT 30) w
sposob podobny do ORDER BY RAND() ?

I drugie pytanie:
Tworze sobie wlasnie system tagow, mam taka tabelke:
video_id | tag |
Aby wykonac chumre tagow chce pobierac najpopularniejsze tagi z
wybranej kategorii. I tu pojawia sie moje pytanie, bowiem naskrobalem
cos takiego:

SELECT video_tags.tag, COUNT(*) AS count FROM video_tags INNER JOIN
videos ON videos.id = video_tags.video_id AND videos.cat_id =
_jakas_kategoria_ GROUP BY video_tags.tag ORDER BY count DESC LIMIT 20

wydaje sie ze dziala, poza sortowaniem ktore chcialbym uzyskac i o
ktorym pisalem wczesniej, ale jak to sie ma wydajnosciowo? Czy przy
sporej bazie takie zapytanie nie jest zbyt kosztowne ? Moze lepiej do
tabelki z tagami dodac pole cat_id i tam jeszcze raz zapisywac id
kategorii ?

Bede wdzieczny za kazda pomoc
Pozdrawiam





csh - 31-08-2007 00:14

  On 30 Sie, 20:49, csh <c-...@o2.pl> wrote:
> Witam
>
> Czy jest mozliwosc posortowania wyniku gdy wykonalismy juz LIMIT ?
> przyklad jaki mnie interesuje:
>
> SELECT tag, COUNT(*) as count FROM video_tags GROUP BY tag ORDER BY
> count DESC LIMIT 30
>
> teraz rekordy jakie otrzymam beda posortowane od najwiekszego, czy
> jest mozliwosc posortowania tego wyniku (juz po wykonaniu LIMIT 30) w
> sposob podobny do ORDER BY RAND() ?
>
> I drugie pytanie:
> Tworze sobie wlasnie system tagow, mam taka tabelke:
> video_id | tag |
> Aby wykonac chumre tagow chce pobierac najpopularniejsze tagi z
> wybranej kategorii. I tu pojawia sie moje pytanie, bowiem naskrobalem
> cos takiego:
>
> SELECT video_tags.tag, COUNT(*) AS count FROM video_tags INNER JOIN
> videos ON videos.id = video_tags.video_id AND videos.cat_id =
> _jakas_kategoria_ GROUP BY video_tags.tag ORDER BY count DESC LIMIT 20
>
> wydaje sie ze dziala, poza sortowaniem ktore chcialbym uzyskac i o
> ktorym pisalem wczesniej, ale jak to sie ma wydajnosciowo? Czy przy
> sporej bazie takie zapytanie nie jest zbyt kosztowne ? Moze lepiej do
> tabelki z tagami dodac pole cat_id i tam jeszcze raz zapisywac id
> kategorii ?
>
> Bede wdzieczny za kazda pomoc
> Pozdrawiam

Ok, pierwszy problem rozwiazalem tak:
SELECT * FROM (SELECT t.tag, COUNT(*) AS count FROM video_tags AS t
INNER JOIN videos AS v ON v.id = t.video_id AND v.cat_id = 2 GROUP BY
t.tag ORDER BY count DESC LIMIT 20) AS tags ORDER BY RAND()
Czy to jedyny sposob ?

Aktualne pozostaje dalej pytanie drugie

Pozdrawiam




Herakles - 01-09-2007 00:16

  > Ok, pierwszy problem rozwiazalem tak:
> SELECT * FROM (SELECT t.tag, COUNT(*) AS count FROM video_tags AS t
> INNER JOIN videos AS v ON v.id = t.video_id AND v.cat_id = 2 GROUP BY
> t.tag ORDER BY count DESC LIMIT 20) AS tags ORDER BY RAND()
> Czy to jedyny sposob ?
>
> Aktualne pozostaje dalej pytanie drugie
Jeśli sortujesz 20 wyników to nie ma się czym martwić(mam na myśli "ORDER BY
RAND()"), natomiast samo "ORDER BY count" będzie przy dużej ilości wyników
sprawiać Ci duże problemy, dlatego lepszym rozwiązaniem byłoby dodanie do
tabeli t(gdzie wnioskuję, że video_id jest PK) poletko w którym trigerem
będziesz apdejtował ilość jaka siedzi w videos.

>
> Pozdrawiam




csh - 01-09-2007 00:16

  On 31 Sie, 08:58, Herakles <herak...@buziaczek.pl> wrote:
> > Ok, pierwszy problem rozwiazalem tak:
> > SELECT * FROM (SELECT t.tag, COUNT(*) AS count FROM video_tags AS t
> > INNER JOIN videos AS v ON v.id = t.video_id AND v.cat_id = 2 GROUP BY
> > t.tag ORDER BY count DESC LIMIT 20) AS tags ORDER BY RAND()
> > Czy to jedyny sposob ?
>
> > Aktualne pozostaje dalej pytanie drugie
>
> Je li sortujesz 20 wyników to nie ma si czym martwi (mam na my li "ORDER BY
> RAND()"), natomiast samo "ORDER BY count" b dzie przy du ej ilo ci wyników
> sprawia Ci du e problemy, dlatego lepszym rozwi zaniem by oby dodanie do
> tabeli t(gdzie wnioskuj , e video_id jest PK) poletko w którym trigerem
> b dziesz apdejtowa ilo jaka siedzi w videos.
>
>
>
> > Pozdrawiam

Dzieki za odzew
Nie bardzo jednak rozumiem ostatnie zdanie :) "ilosc jaka siedzi w
videos" tzn ?
Przeicez za pomoca COUNT(*) zliczam ilosc takich smaych tagow w tabeli
video_tags a nie videos.





Herakles - 01-09-2007 00:16

  csh wrote:

> On 31 Sie, 08:58, Herakles <herak...@buziaczek.pl> wrote:
>> > Ok, pierwszy problem rozwiazalem tak:
>> > SELECT * FROM (SELECT t.tag, COUNT(*) AS count FROM video_tags AS t
>> > INNER JOIN videos AS v ON v.id = t.video_id AND v.cat_id = 2 GROUP BY
>> > t.tag ORDER BY count DESC LIMIT 20) AS tags ORDER BY RAND()
>> > Czy to jedyny sposob ?
>>
>> > Aktualne pozostaje dalej pytanie drugie
>>
>> Je li sortujesz 20 wyników to nie ma si czym martwi (mam na my li "ORDER
>> BY RAND()"), natomiast samo "ORDER BY count" b dzie przy du ej ilo ci
>> wyników
>> sprawia Ci du e problemy, dlatego lepszym rozwi zaniem by oby dodanie do
>> tabeli t(gdzie wnioskuj , e video_id jest PK) poletko w którym trigerem
>> b dziesz apdejtowa ilo jaka siedzi w videos.
>>
>>
>>
>> > Pozdrawiam
>
> Dzieki za odzew
> Nie bardzo jednak rozumiem ostatnie zdanie :) "ilosc jaka siedzi w
> videos" tzn ?
> Przeicez za pomoca COUNT(*) zliczam ilosc takich smaych tagow w tabeli
> video_tags a nie videos.

No faktycznie nie doczytałem, ale to jakoś mi nie podchodzi wydajnościowo
wogóle.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    =?ISO-8859-2?Q?=5BORACLE=2C_ORDER_BY=5D_Czy_indeksowane_?==?I SO-8859-2?Q?kolumny_przy=B6piesz=B1_sortowanie=3F?= sql -> tworzenie nowej kolumny z dzielenia 2 innych i sortowanie po niej =?iso-8859-2?q?Sortowanie_wyniku_wg_dw=F3ch_kryteri=F3w?= [ORACLE] sortowanie =?ISO-8859-2?Q?wed=B3ug_ci=B1gu?= mysql: left join group by order by - problem z sortowaniem =?iso-8859-2?Q?PostgreSQL_-_jak_ustawi=E6_sortowanie=3F?= Najlepszy algorytm sortowania ciągu częściowo posortowanego [MySQL] Dwa typy sortowania w jednej tabeli jak wymusic sortowanie mysql dla znakow kodowanych w cp1250 [PGSQL] Sortowanie wg indeksu innej tabeli
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-hacjenda.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com