2017-08-30 21 views
-1

My database table我的SQL查询与最大列值选择不同的记录

我有maitains复制Panel_Number和历史上这一历史表。 我将需要你的帮助来获得一个查询,这将使我从表中得到不同的Panel_Number及其最大值(版本)。

例如: - 面板0G3101在表中有3个不同版本的1,2,3。我只需要在结果集中显示面板0G3101 WITH MAX(VERSION),在这种情况下是3。

同样,我需要所有不同的面板号码与他们的最大版本。

+1

如果你的要求是'[MySQL的]'数据库不包含'[甲骨文]'标签。他们是不同的产品,对于这项任务他们可能有不同的解决方案。 – APC

+1

你可以看看这个,这对我以前的帮助。希望它对你也有帮助。 https://stackoverflow.com/questions/7745609/sql-select-only-rows-with-max-value-on-a-column – Amal

回答

0

这里是an SQL fiddle I made for you。我添加了一些任意的数据,但查询可以正常工作。

查询应该是:

SELECT 
    id, 
    panel_number, 
    max(version) 
FROM 
    PANEL 
GROUP BY 
    panel_number 

的结果是这样的:

| id | panel_number | max(version) | 

|----|--------------|--------------| 

| 1 |  0G3101 |   3 | 

| 4 |  0G3102 |   2 | 
+0

谢谢。但这并不完全按要求运作。我可能没有精确地解释我的要求。在图像中,对于面板号0G3101,0G3106,0G3107,0G3108,我正确地获取版本,但插入了最新的记录,这意味着查询抖动返回ids- 61.62,63,64(它们在表格的末尾) – MayurS

0

您可以通过子句中使用集团解决您的问题。

SELECT panel_number, max(version) FROM PANEL GROUP BY panel_number 
+0

对不起芽。我需要插入最新版本的面板号码,在这种情况下,它是ids- 61.62,63,64(位于表格末尾) – MayurS

+0

请尝试以下一种方式:'SELECT panel_number,version,max(id)FROM PANEL GROUP BY panel_number' –

+0

更新您的问题,以便我们可以提供帮助,并对小提琴进行一些更改,以便我们可以知道您确切需要什么。 – droidnation

-1

尝试在查询these..work 100%的点击..

SELECT panel_number, MAX(version) FROM PANEL GROUP BY panel_number 
+0

这不符合要求,即为每个业务键('panel_number')选择最高版本的记录。 – APC