Ho poche colonne di una tabellaCome selezionare distinti su colonne specifiche
Col1, Col2, Col3, Col4
Ora voglio per selezionare come questo
SELECT DISTINCT (Col1, Col2, Col3), Col4
ie ottenere il distinto basato o n solo queste tre colonne.
Ho poche colonne di una tabellaCome selezionare distinti su colonne specifiche
Col1, Col2, Col3, Col4
Ora voglio per selezionare come questo
SELECT DISTINCT (Col1, Col2, Col3), Col4
ie ottenere il distinto basato o n solo queste tre colonne.
Da un commento ad un'altra risposta:
Posso avere come questo Col1, Col2, Col3 e (Col4 in forma delimitatore)
Sì, è possibile utilizzare il for xml path
.
select Col1,
Col2,
Col3,
(
select ',' + T2.Col4
from YourTable T2
where T1.Col1 = T2.Col1 and
T1.Col2 = T2.Col2 and
T1.Col3 = T2.Col3
for xml path(''), type
).value('substring((./text())[1], 2)', 'varchar(max)') as Col4
from YourTable as T1
group by T1.Col1, T1.Col2, T1.Col3
Proprio GROUP BY Col1, Col2, Col3
con una funzione di aggregazione con il col4
come MAX
, MIN
, ecc .. in questo modo:
SELECT Col1, Col2, Col3, MAX(Col4)
FROM TableName
GROUP BY Col1, Col2, Col3
Questo è un campo varchar, voglio solo avere record distinti basati su tre colonne. – Zerotoinfinity
@Zerotoinfinite Che ne dici di 'col4' cosa vuoi fare per esso per ogni valore distinto per le altre righe? –
Col4 è varchar e non posso fare alcuna aggregazione su questo. ma quella è colonna unica. Volevo ottenere univoco di 3 colonne e aggiungere solo la quarta colonna relativa a quella riga – Zerotoinfinity
Il gruppo da eseguire e distinta funzionalità quasi simile a SQL:
SO entrambe le query di seguito sono quasi equivalenti:
SELECT DISTINCT Col1, Col2, Col3 FROM tbl
SELECT Col1, Col2, Col3 FROM tbl GROUP BY Col1, Col2, Col3
Ma voglio avere Col4 anche nel set di risultati – Zerotoinfinity
Perché non scrivi una query interna facendo distinzione tra 3 colonne e la query esterna che prende interno 3 e Col4 di righe corrispondenti? – RMN
select distinct (Convert(varchar(255),Col1) +' '+
Convert(varchar(255),Col2)+' '+Convert(varchar(255),Col3)),
Col4 from clients
E il 'Col4' è necessario eseguire alcune aggregazione su questo per ogni valore distinto delle altre 3 colonne? –
È possibile ottenere aiuto da questo post http://stackoverflow.com/questions/1471250/counting-distinct-over-multiple-columns –