MySQL - SUM jen pro určitý počet záznamů rubrika: Databáze: SQL

1 skybedy
položil/-a 8.5.2016

Mám tabulku třeba se dvěmi startovními čísly a ke každému z nich jsou přiřazené časy.
Dejme tomu, že každé ze startovních čísel má v tabulce 3 časy, to znamená, že za téhle situace je v tabulce 6 záznamů.
Když chci časy sečíst a sečtené je přiřadit ke startovním číslům a následně seřadit, udělám to jednoduše.
SELECT startovni_cislo, SUM(cas) FROM tabulka GROUP BY startovni_cislo ORDER BY cas ASC
Jak to ale udělat, když chci to samé, ale pouze pro dva časy, nebo jen jeden?

odkaz
2 Peter Brejcak
odpověděl/-a 2.6.2016

Pouzi premenne. Viac o nich napriklad na http://dev.mysql.com/doc/refman/5.7/en/user-variables.html
Select nizsie ti vrati cas pre prve 2 useky - uprav ORDER BY t.startovni_cislo, t.usek ak to potrebujes usporiadat podla niecoho ineho.

select z.startovni_cislo, sum(z.cas) from 
(SELECT  @row_num := IF(@prev_value=t.startovni_cislo,@row_num+1,1) AS RowNumber
       ,@prev_value := t.startovni_cislo
       ,t.usek
       ,t.cas,
       ,t.startovni_cislo
  FROM tabulka t,
      (SELECT @row_num := 1) x,
      (SELECT @prev_value := '') y
  ORDER BY t.startovni_cislo, t.usek) z
  where z.RowNumber=<2 -- jenom prvni 2 useky

Komentáře

  • skybedy : Dobré, díky. 3.6.2016

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.