我正在尝试从列中选择不同的值,但返回与所选值相关的所有行。在伪代码中它看起来像这样。
SELECT *
FROM table
WHERE field is Distinct
我用Google搜索了问题,我尝试使用GROUP BY,但查询从未执行过。谢谢你的帮助。
我正在使用Microsoft SQL数据库。
数据如下所示:
CodeId Code CatalogType CodeGroup CodeText CodeGroupText CodeDesc State_ID
------- ----- ------------- ---------- -------- -------------- --------- ---------
1 AAAA 1 100 Plastic Plastic Center NULL 2
2 BBBB 1 100 Glass Glass Center NULL 2
3 CCCC 1 101 Steel Steel Center NULL 2
我只想让数据在代码组不同的地方看起来一样。
数据看起来像这样:
CodeId Code CatalogType CodeGroup CodeText CodeGroupText CodeDesc State_ID
------- ----- ------------- ---------- -------- -------------- --------- ---------
1 AAAA 1 100 Plastic Plastic Center NULL 2
3 CCCC 1 101 Steel Steel Center NULL 2
答案 0 :(得分:3)
在大多数数据库中,您可以这样做:
select t.*
from (select t.*
row_number() over (partition by field order by field) as seqnum
from t
) t
where seqnum = 1
答案 1 :(得分:3)
您始终可以使用子查询为每个min(codeid)
返回codegroup
,并将此结果加入到您的表中:
select t1.codeid,
t1.code,
t1.catalogtype,
t1.codegroup,
t1.codetext,
t1.codegrouptext,
t1.codedesc,
t1.state_id
from yourtable t1
inner join
(
select MIN(codeid) codeid, codegroup
from yourtable
group by codegroup
) t2
on t1.codeid = t2.codeid
and t1.codegroup = t2.codegroup
答案 2 :(得分:0)
SELECT field1,field2,max(field3),sum(field4)
FROM table
GROUP BY field1, field2
这将为您提供所有不同的field1和field2。您无法直接获取field3字段(使用此分组),因为可能有多个field3。
答案 3 :(得分:0)
如果您只需要列中的不同值,即在一列中查找一组唯一值,那么此代码可以帮助您(至少对于sql server):
select distinct
columnName
from tableT