Você pode obter a combinação distinta de 2 campos diferentes em uma tabela de banco de dados? em caso afirmativo, você pode fornecer o exemplo SQL.
84
Que tal simplesmente:
select distinct c1, c2 from t
ou
select c1, c2, count(*)
from t
group by c1, c2
Operand should contain 1 column(s)
erros, o problema é que provavelmente você está fazendoselect distinct(c1, c2) from t
e não tem permissão para colchetes aqui. Foi assim que cheguei aqui.Se você quiser valores distintos de apenas dois campos, além de retornar outros campos com eles, os outros campos devem ter algum tipo de agregação (soma, mínimo, máximo, etc.), e as duas colunas que você deseja distinto devem aparecer em a cláusula group by. Caso contrário, é como diz Decker.
fonte
Você pode obter resultados distintos por duas colunas usadas abaixo do SQL:
SELECT COUNT(*) FROM (SELECT DISTINCT c1, c2 FROM [TableEntity]) TE
fonte
Se você ainda deseja agrupar apenas por uma coluna (como eu queria), você pode aninhar a consulta:
select c1, count(*) from (select distinct c1, c2 from t) group by c1
fonte
Compartilhe meu pensamento estúpido:
Talvez eu possa selecionar distinto apenas em c1, mas não em c2, então a sintaxe pode ser
select ([distinct] col)+
ondedistinct
está um qualificador para cada coluna.Mas depois de pensar, acho que distinto em apenas uma coluna é um absurdo . Considere a seguinte relação:
Se nós
select (distinct A), B
, então o que é o bomB
paraA = 1
?Portanto,
distinct
é um qualificador para astatement
.fonte