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

MySql :Zainicjuj zmienną mySql w zapytaniu

Nie musisz inicjować zmiennej w podzapytaniu. Zamiast tego możesz zainicjować zmienną za pomocą CROSS JOIN :

SELECT time_of_day, 
       @channel_rank := IF(@current_channel = channel, 1, 
                             @channel_rank + 1) AS channel_rank, 
       @current_channel := channel AS channel,Views
FROM
(
   SELECT time_of_day,channel, SUM(Views) AS 'Views'
   FROM access_logs_meaningful_optimized
   WHERE `time_of_day` = 0
   AND playing_date = '2016-10-26' 
   GROUP BY channel
   ORDER BY SUM(views) DESC
   LIMIT 5
) AS xx
CROSS JOIN (SELECT @channel_rank := 0) var



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ustawianie obiektu blob na null za pomocą PreparedStatement

  2. Czy mogę warunkowo wymusić ograniczenie unikalności?

  3. Czy istnieje coś analogicznego do metody split() w mySql?

  4. MySQL:zaktualizuj wszystkie wiersze w tabeli pasujące do wyników innego zapytania

  5. Sequelize Query, aby znaleźć wszystkie rekordy mieszczące się w zakresie dat