Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

So sánh các giá trị của dấu thời gian và chỉ định một giá trị cho từng dấu thời gian trong trường hợp chúng đã thay đổi

Nếu tôi hiểu đúng yêu cầu của bạn, thì week_switch của bạn hàng kết quả chỉ phụ thuộc vào sản phẩm của bạn, không phụ thuộc vào dấu thời gian của nó.

Vì vậy, hãy tính nó trong một truy vấn con.

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

Sau đó THAM GIA truy vấn con đó đến thông tin chi tiết của bạn ( fiddle ).

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 THAM GIA trên nhiều bảng không trả về kết quả

  2. Cách sử dụng cURL để tìm nạp dữ liệu cụ thể từ một trang web và sau đó lưu nó vào cơ sở dữ liệu của tôi bằng php

  3. Có giới hạn nào đối với độ dài của truy vấn trong mysql không?

  4. Biến do người dùng định nghĩa trong MySQL trong mệnh đề WHERE

  5. MySQL không coi ı là tôi?