PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PG::Błąd w klauzuli GROUP BY

Podczas korzystania z GROUP BY nie możesz SELECT pola, które nie są częścią GROUP BY lub używane w funkcji agregującej. Jest to określone w standardzie SQL, chociaż niektóre bazy danych i tak decydują się na wykonanie takich zapytań. Ponieważ nie ma jednego prawidłowego sposobu wykonania takiego zapytania, zwykle wybierają pierwszy znaleziony wiersz i zwracają go, więc wyniki będą się nieprzewidywalnie różnić.

Wygląda na to, że chcesz powiedzieć:

„Dla każdej publikacji podaj mi sumę liczby twitterów, facebooków i linkedin dla tej publikacji”.

Jeśli tak, możesz napisać:

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;

Przekładając to na ActiveRecord/Rails... do Ciebie, nie używam tego. Wygląda na to, że to prawie to, co próbowałeś napisać, ale ActiveRecord wydaje się to manipulować, być może próbując wykonać obliczenia lokalnie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClassNotFoundException z PostgreSQL i JDBC

  2. Importuj zrzut MySQL do bazy danych PostgreSQL

  3. Dlaczego PostgreSQL połączył użytkowników i grupy w role?

  4. Postgres:BŁĄD:plan w pamięci podręcznej nie może zmieniać typu wyniku

  5. Postgres BŁĄD:nie można otworzyć pliku do odczytu:Odmowa uprawnień