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

Jak utworzyć odwrotną zmienną uporządkowaną w moim sql

Twój pełny kod to

SELECT
t1.*
, t2.max_room - `cumulative_room` 'reverse_cumulative room'
FROm (SELECT date,
                ant, 
                num_room,
                (@csum:= @csum + num_room) as cumulative_room
                from xxx_xxxx_xxxx
                WHERE date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
                AND(select @csum := 0) = 0
                order by date) t1
INNER JOIN (SELECT MAX(`cumulative_room`) +1 max_room,  `date` FROM (SELECT date,
                                                                            ant, 
                                                                            num_room,
                                                                            (@csum:= @csum + num_room) as cumulative_room
                                                                            from xxx_xxxx_xxxx
                                                                            WHERE date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
                                                                            AND(select @csum := 0) = 0
                                                                            order by date) t3 GROUP BY  `date`) t2
ON t1.`date` = t2.`date`;

Ideą tego jest

db<>fiddle tutaj




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sprawdź, czy wartości istnieją przed INSERT INTO ... W AKTUALIZACJI ZDUPLIKOWANEGO KLUCZA

  2. Hibernate nie wypełnia kolumny AUTO_INCREMENT będącej częścią złożonego PK, błędu lub anty-funkcji?

  3. Wydajność neo4j w porównaniu do mysql (jak można poprawić?)

  4. Pobierz więcej niż 3 dane z mysql do pola wyboru

  5. Błąd konwersji PDO z tablicy na ciąg znaków