我也有類似的這種如何獲得與最大ID行與表的條件在SQL Server
id-value-RowInid 1-xy-1 1-xx-2 1-xz-3 2-xx-1 2-xr-2 3-xq-1 4-xa-1 4-xc-2 ...
我需要爲這個表有類似的輸出功能,以獲得最大的RowInid在分離ID組的表
1-xz-3 2-xr-2 3-xq-1 4-xc-2 ...
我也有類似的這種如何獲得與最大ID行與表的條件在SQL Server
id-value-RowInid 1-xy-1 1-xx-2 1-xz-3 2-xx-1 2-xr-2 3-xq-1 4-xa-1 4-xc-2 ...
我需要爲這個表有類似的輸出功能,以獲得最大的RowInid在分離ID組的表
1-xz-3 2-xr-2 3-xq-1 4-xc-2 ...
不需要group by或最大所有
select id, value, rowinid from
(select *, row_number() over (partition by id, order by rowinid desc) rn from yourtable) v
where rn = 1
你只需要使用
MAX(RowInid)
與
GROUP BY Id, value
SELECT ID, VALUE, MAX(RowInid) FROM myTable GROUP BY ID, VALUE
編輯:
當你更新你的問題,你可以使用子查詢像這樣得到value
領域:
SELECT ID, VALUE, RowInid
FROM myTable t1 WHERE RowInid =
(
SELECT MAX(RowInid) FROM myTable WHERE id = t1.id GROUP BY id
)
ORDER BY id ASC;
您也可以實現用INNER JOIN
這是這樣的:
SELECT t2.ID, VALUE, t2.RowInid FROM myTable t1
INNER JOIN
(
SELECT ID, MAX(RowInid) AS RowIniD FROM myTable GROUP BY ID
) AS t2
ON t1.ID = t2.ID AND t1.RowInid = t2.RowInid
ORDER BY t1.ID ASC;
與嘗試,
使用子查詢來獲取身份證,價值和最大RowInid,
SELECT m1.[Id],m1.Value, m1.RowInid
FROM [Practice].[dbo].[myTable] m1 WHERE RowInid = (SELECT MAX(m2.RowInid) FROM [Practice].[dbo].[myTable] m2 WHERE M1.Id = m2.Id GROUP BY Id)
上面的查詢返回的結果,如: 4-XX-2 3-XX-1 2 -xx-2 1-XX-3
爲升序這種用途中,
SELECT m1.[id],m1.Value, m1.RowInid
FROM [Practice].[dbo].[myTable] m1 WHERE m1.RowInid = (SELECT MAX(m2.RowInid) FROM [Practice].[dbo].[myTable] m2 WHERE M2.id = m1.id GROUP BY id) ORDER BY m1.id ASC
是,值字段必須是輸出,在不同的行值 – jozi