where sum(foo) < x - ohne group by



  • Hallo Leute.

    Ich habe eine Tabelle mit dem vielen Eintraegen und jeder Eintrag hat den Wert Dauer. Ich wuerde jetzt gerne soviele Eintraege zufaellig auswaehlen, bis die Summe der Dauer dieser Eintraege X erreicht hat.

    Was natuerlich geht ist es mit mehreren Abfragen loesen:
    solange einen zufaelligen Eintrag auswaehlen bis die gesuchte Summe erreicht ist. Aber geht das auch in einem SQL Statement?

    Danke schonmal.



  • Hallo.

    Loesung schon gefunden:

    select tbl.*, @duration_counter := @duration_counter + tbl.duration as duration_sum from (select @duration_counter := 0) d, tbl where foo having duration_sum<X order by rand()
    

    Also mittels Having und einer Counter Variable.


Anmelden zum Antworten