sql >> Database teknologi >  >> RDS >> Mysql

Sammenlign værdier af tidsstempler og tildel en værdi til hver af dem, hvis de har ændret sig

Hvis jeg forstår dit krav korrekt, din week_switch resultatrækken afhænger kun af dit produkt, ikke dets tidsstempel.

Så udregn det i en underforespørgsel.

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

Så TILMELD den underforespørgsel til dine detaljer (violon ).

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. MySQL REPLACE:Sådan erstatter alle forekomster af en char i hver enkelt understreng afgrænset af samme hoved og hale

  2. LEFT JOIN vs. LEFT OUTER JOIN i SQL Server

  3. mySQL-undtagelse:Kan ikke oprette forbindelse til nogen af ​​de angivne MySQL-værter. gennem C#

  4. hvordan man får en enkelt værdi fra array i codeigniter