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

Làm cách nào để sử dụng bí danh trong mệnh đề GROUP BY?

Không chắc chắn những gì bạn đang cố gắng làm. Nhưng bạn có thể gói truy vấn của mình thành một truy vấn con mà không cần range_day trong mệnh đề GROUP BY. Sau đó, sử dụng mệnh đề GROUP BY của bạn trong truy vấn bên ngoài như nó vốn có.

SELECT  SUM(score) score,
    type,
    context, -- WARNING! Not listed in group by clause
    post_id,
    table_code,
    comment_id,
    MIN(seen) seen,
    MAX(d_t) d_t,
    range_day
FROM (
    SELECT  SUM(score) score,
        MAX(id) as id,
        type,
        context, -- WARNING! Not listed in group by clause
        post_id,
        e.table_code,
        comment_id,
        MIN(seen) seen,
        MAX(date_time) d_t,
        (CASE   WHEN FROM_UNIXTIME(MAX(date_time)) >= CURDATE() THEN 'today'
            WHEN FROM_UNIXTIME(MAX(date_time)) >= DATE_SUB(CURDATE(), INTERVAL 1 DAY) THEN 'yesterday'
            WHEN FROM_UNIXTIME(MAX(date_time)) >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) THEN 'in last week'
            ELSE 'in last month'
        END) as range_day
    FROM `events` e
    WHERE e.id IN ($ids)
    GROUP BY type, post_id, e.table_code, comment_id
) sub
GROUP BY type, post_id, table_code, comment_id, range_day
ORDER BY seen, MAX(d_t) desc, MAX(id) desc

Tuy nhiên - bạn chọn context không có tổng hợp sẽ không được liệt kê trong mệnh đề GROUP BY. Vì vậy, bạn sẽ nhận được một số giá trị "ngẫu nhiên" từ nhóm. Ở chế độ nghiêm ngặt, truy vấn sẽ không thành công.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sắp xếp nhiều trường trong MySQL

  2. Làm cách nào để viết lại thành công mã mysql-php cũ bằng các hàm mysql_ * không dùng nữa?

  3. Nguyên nhân gây ra lỗi MySQL 2014 Không thể thực thi truy vấn trong khi các truy vấn không có bộ đệm khác đang hoạt động

  4. Làm cách nào để chỉ gửi sự kiện nhấp chuột (div), khi sử dụng hàm jquery live?

  5. Cú pháp MySQL Lỗi cú pháp đúng để sử dụng gần 'desc