sql >> Databasteknik >  >> RDS >> Sqlserver

Är det möjligt att använda Aggregate-funktionen i en Select-sats utan att använda Group By-satsen?

Alla kolumner i SELECT-satsen som inte har ett aggregerat måste finnas i GROUP BY

Bra:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3

Också bra:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, col5, col6

Inga andra kolumner =ingen GROUP BY behövs

SELECT MAX(col4)
...

Fungerar inte:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2

Meningslöst:

SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, MAX(col4)

Att ha en sammanställning (MAX etc) med andra kolumner utan en GROUP BY är meningslöst eftersom frågan blir tvetydig.



  1. Kör mysql insert endast om tabellen är tom

  2. Finns det en MySQL-motsvarighet till PHPs preg_replace?

  3. Konvertera VarBinary RTF blob till text i MS SQL

  4. Skillnaden mellan DELETE och TRUNCATE Tabell i SQL Server