Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bandingkan nilai stempel waktu dan tetapkan nilai untuk masing-masing jika ada perubahan

Jika saya memahami kebutuhan Anda dengan benar, week_switch . Anda baris hasil hanya bergantung pada produk Anda, bukan stempel waktunya.

Jadi hitung dalam subquery.

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

Kemudian GABUNG subkueri itu ke detail Anda (biola ).

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. Group_Concat di Concat tidak berfungsi dengan nilai NULL

  2. Bagaimana cara membuat Inner Join di Django?

  3. Cara mengunggah dan mengunduh file PHP dan MySQL

  4. Cara mengimpor dan mengekspor database melalui phpMyAdmin ('Akses ditolak buat database db_name' error)

  5. pemilihan cepat baris acak dari tabel besar di mysql