Sql 考虑到另一列中的重复值,我需要选择一列
我有这张桌子Sql 考虑到另一列中的重复值,我需要选择一列,sql,sql-server,Sql,Sql Server,我有这张桌子 parameterid hdfid 32 1/3 7 1/2/3 42 1/2/3 48 1/2/3 51 1/2/3 52 1/2/3 44 1/2/3/4 考虑到hdfid的不同值,我需要选择一个参数。如果我有几个相同的hdfid,我需要得到一个参数,不管是哪一个 parameterid 32 7 44
parameterid hdfid
32 1/3
7 1/2/3
42 1/2/3
48 1/2/3
51 1/2/3
52 1/2/3
44 1/2/3/4
考虑到hdfid的不同值,我需要选择一个参数。如果我有几个相同的hdfid,我需要得到一个参数,不管是哪一个
parameterid
32
7
44
或
我一直在努力解决这个问题。有什么想法吗?选择min(parameterid)作为parameterid
select min(parameterid) as parameterid
from [<YourTable>]
group by hdfid
从[]
按hdfid分组
尝试此查询
select min(parameterid) from tbl group by hdfid
:
可以使用GROUP BY将集合中的行组合到一个分组集合中。您可以使用诸如MAX()COUNT()和MIN()之类的聚合函数从分组集中的行中获取组合值或仅获取一个值。这将返回每个唯一hdfid的第一个参数ID
SELECT
MIN(parameterid)
,hdfid
FROM yourtable
GROUP BY hdfid
如果您不想要hdfid,可以这样做:
SELECT
MIN(parameterid)
FROM yourtable
GROUP BY hdfid
或者,如果您希望获得最高的值:
SELECT
MAX(parameterid)
FROM yourtable
GROUP BY hdfid
通过hdfid从tbl组中选择参数ID
。。。。希望这有帮助…@Meherzad在SQL Server中不起作用-“列'parameterid'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。”
。您需要MIN(parameterid)
或MAX(parameterid)
或其他什么。感谢您的指点……:)想到mysql。。试试这个<代码>按hdfid从tbl组中选择hdfid,min(参数ID)
SELECT
MIN(parameterid)
FROM yourtable
GROUP BY hdfid
SELECT
MAX(parameterid)
FROM yourtable
GROUP BY hdfid