SQL删除基于最大值

时间:2013-04-28 02:48:18

标签: sql sql-delete

我的表有一个3列的复合键

st_id, sj_id, order

并希望根据特定的st_id和sj_id删除一行并取最大值(顺序)

你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

据我所知,你需要分两步完成这个步骤(这是从内存开始的,所以可能不会第一次编译):

DELETE
FROM table
WHERE st_id = my_st_id
AND sj_id = my_sj_id 
AND order IN (
  SELECT MAX(order)
  FROM table
  WHERE st_id = my_st_id
  AND sj_id = my_sj_id)

这样做首先执行内部(SELECT)查询,返回最大顺序。然后将这些结果传递给执行删除的外部查询。