/ / L'espressione GROUP-BY deve contenere almeno una colonna che non sia un riferimento esterno - sql-server, sql-server-2008, tsql

L'espressione GROUP-BY deve contenere almeno una colonna che non sia un riferimento esterno - sql-server, sql-server-2008, tsql

ho questa domanda:

SELECT
SolutionName    -- Solution_NAM
from  Table_View
Group By 1

dove Table_View è ovviamente una vista. Sto gettando questo messaggio di errore:

Ogni espressione GROUP BY deve contenere almeno una colonna che non sia un riferimento esterno.

Puoi aiutarmi a risolvere questo? È dentro Ms SQL Server 2008

risposte:

4 per risposta № 1

non puoi dare il gruppo per 1

provare

SELECT
SolutionName    -- Solution_NAM
from  Table_View
Group By SolutionName

0 per risposta № 2

La dichiarazione di Martin su GROUP BY è corretta,sebbene tu> puoi <utilizzare un ordinale di colonna invece del nome di una colonna in un ORDER BY, in varie versioni di SQL (sto pensando a TSQL, che è lo standard ISO nella maggior parte della sintassi SQL principale).

Ma è una pratica saggia non usare i numeri di colonnanelle dichiarazioni ORDER BY, anche se funzionano. Perché? Se la query è una parte di un proc memorizzato e lo schema della tabella viene modificato aggiungendo una colonna alla tabella originale (o alla vista), non vi è alcuna garanzia che l'ordine originale delle colonne venga mantenuto dalla modifica. Il che significherebbe che potresti ordinare da una colonna non voluta e priva di significato, che quindi interrompe la tua richiesta.

È molto meglio usare i nomi delle colonnepiuttosto che ordinali ogni volta (anche se come il conteggio (*), non ci si blocca se si tratta di query ad-hoc per uso personale che non vedranno mai la luce del giorno in produzione).