Mysql
 sql >> Baza danych >  >> RDS >> Mysql

użyj mysql SUM() w klauzuli WHERE

Do porównania można używać tylko agregatów w klauzuli HAVING:

GROUP BY ...
  HAVING SUM(cash) > 500

HAVING klauzula wymaga zdefiniowania klauzuli GROUP BY.

Aby uzyskać pierwszy wiersz, w którym suma wszystkich poprzednich środków pieniężnych jest większa niż określona wartość, użyj:

SELECT y.id, y.cash
  FROM (SELECT t.id,
               t.cash,
               (SELECT SUM(x.cash)
                  FROM TABLE x
                 WHERE x.id <= t.id) AS running_total
         FROM TABLE t
     ORDER BY t.id) y
 WHERE y.running_total > 500
ORDER BY y.id
   LIMIT 1

Ponieważ funkcja agregująca występuje w podzapytaniu, alias jej kolumny może być przywoływany w klauzuli WHERE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Szybki i łatwy sposób na migrację SQLite3 do MySQL?

  2. Funkcja MySQL TRUNCATE() – Obcina liczbę do określonej liczby miejsc dziesiętnych

  3. mysql wybierz z n ostatnich wierszy

  4. Jak połączyć się z bazą danych MySQL?

  5. Co to znaczy uciec przed napisem?