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

PG ::Lỗi trong mệnh đề GROUP BY

Khi sử dụng GROUP BY bạn không thể SELECT các trường không phải là một phần của GROUP BY hoặc được sử dụng trong một hàm tổng hợp. Điều này được chỉ định bởi tiêu chuẩn SQL, mặc dù một số cơ sở dữ liệu vẫn chọn thực hiện các truy vấn như vậy. Vì không có cách chính xác duy nhất nào để thực hiện một truy vấn như vậy, họ có xu hướng chỉ chọn hàng đầu tiên họ tìm thấy và trả về hàng đó, vì vậy kết quả sẽ thay đổi không thể đoán trước.

Có vẻ như bạn đang cố nói:

"Đối với mỗi ấn phẩm, hãy lấy cho tôi tổng số lượt đếm trên twitter, facebook và linkedin cho ấn phẩm đó".

Nếu vậy, bạn có thể viết:

SELECT publication,
       sum(twitter_count) AS twitter_sum,
       sum(linkedin_count) AS linkedin_sum,
       sum(facebook_count) AS facebook_sum
FROM "articles" 
WHERE "articles"."user_id" = 1 
GROUP BY publication;

Dịch nó thành ActiveRecord / Rails ... tùy thuộc vào bạn, tôi không sử dụng nó. Có vẻ như đó là khá nhiều thứ bạn đã cố gắng viết nhưng ActiveRecord dường như đang làm hỏng nó, có lẽ đang cố gắng thực thi các tổng cục bộ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để làm cho Java và Postgres enums hoạt động cùng nhau để cập nhật?

  2. Postgres:CHÈN nếu chưa tồn tại

  3. Truy vấn PostgreSQL để liệt kê tất cả các tên bảng?

  4. Thay đổi mã hóa cơ sở dữ liệu PostgreSql

  5. PostgreSQL 13:GIỚI HẠN… CÓ TIES