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

Porównaj wartości znaczników czasu i przypisz wartość do każdego z nich na wypadek, gdyby się zmieniły

Jeśli dobrze rozumiem Twoje wymagania, Twój week_switch wiersz wyników zależy tylko od produktu, a nie od jego sygnatury czasowej.

Więc oblicz to w podzapytaniu.

  SELECT product,
         (CASE 
          WHEN MIN(plan_week) <> MAX(plan_week) THEN 'yes' 
          ELSE 'no' END)  AS week_switch
    FROM operations
   GROUP BY product

Następnie DOŁĄCZ to podzapytanie do swoich danych (skrzypce ).

WITH switched AS (
  SELECT product,
         CASE
         WHEN MIN(plan_week) <> MAX(plan_week) THEN 'yes'
         ELSE 'no' END AS week_switch
    FROM operations
   GROUP BY product
)
SELECT
operations.time_stamp,
operations.product,
operations.plan_week,
switched.week_switch
FROM operations
LEFT JOIN switched ON operations.product = switched.product
WHERE time_stamp in ('2020-01-01', '2020-03-15')
GROUP BY 1,2;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:przekroczono limit czasu oczekiwania na blokadę

  2. Znajdź najnowszy identyfikator duplikatów za pomocą MySQL

  3. Jak zaimportować plik SQL za pomocą mysqldump w systemie Windows za pomocą wiersza poleceń?

  4. Hybrydowe obciążenia baz danych OLTP/Analytics:replikacja danych MySQL do ClickHouse

  5. Czy wątek połączenia pymysql jest bezpieczny? Czy wątek kursora pymysql jest bezpieczny?