我想在另一个表格中显示两个值的表的最后一个版本。
Version | Value
12 | ORANGE
11 | ORANGE
11 | BANANA
10 | ORANGE
11 | BANANA
结果应为
11 | ORANGE
11 | BANANA
有人可以帮助我吗?
答案 0 :(得分:0)
这应符合您的描述:
SELECT * FROM tab
WHERE Version IN
(
SELECT MAX(Version) OVER ()
FROM tab
-- WHERE Value in ('ORANGE','BANANA') ???
GROUP BY Version
-- HAVING COUNT(DISTINCT Value) -- if duplicates exist
HAVING COUNT(*) = 2 -- only versions with two entries
)
答案 1 :(得分:0)
这应该有效
SELECT *
FROM TABLE
WHERE VERSION IN (
SELECT MIN(VERSION) -- GET MIN VERSION FROM MAX
FROM (
SELECT MAX(VERSION) as VERSION,
FROM TABLE
GROUP BY VALUE)
)
)
这个技巧从Max版本返回最小版本,只有香蕉和橙色共享确切版本号时才有效。 这意味着如果Orange跳过一个版本(从12到13,有12个),而banana正好是12,那么它将无效。