sql >> Databasteknik >  >> RDS >> PostgreSQL

GroupingError:ERROR:kolumnen måste visas i GROUP BY-satsen eller användas i en aggregerad funktion

Du får inte välja reviews.id (valt implicit genom jokertecknet * ) utan att lägga till den i GROUP BY sats eller tillämpa en aggregatfunktion som avg() . Lösningen är att göra något av följande:

  1. Ta bort jokertecknet * från ditt val
  2. Lägg till fältet reviews.id till din gruppklausul
  3. Välj reviews.id uttryckligen och tillämpa en aggregerad funktion på den (t.ex. sum(reviews.id) )
  4. Ersätt jokertecknet * med det tabellspecifika jokerteckenet albums.*

Det andra och tredje alternativet är dock inte så meningsfullt i ditt scenario. Baserat på din kommentar lade jag till alternativ fyra.



  1. Är det möjligt att referera till kolumnnamn via bindningsvariabler i Oracle?

  2. Kan jag parametrisera tabellnamnet i en förberedd sats?

  3. Hur förhindrar jag att en databastrigger återkommer?

  4. JSON_SET() vs JSON_INSERT() vs JSON_REPLACE() i MySQL:Vad är skillnaden?