我有一张桌子,表1
Table1
ID REG VALUE
1 54 500
2 54 1700
3 60 5000
4 60 5500
现在,我需要将此表中的行复制到第二个 Table2 ,但对于具有相同REG
的条目,我想在第二个表中创建单行,最高VALUE
和较低VALUE
之间的差异,如下所示:
Table2
ID REG VALUE
1 54 1200
2 60 500
我该怎么做?
答案 0 :(得分:2)
您可以使用insert-select语句:
INSERT INTO table2 (reg, value)
SELECT reg, MAX(value) - MIN(value)
FROM table1
GROUP BY reg
HAVING COUNT(*) > 1
编辑:
如果要求也要复制出现在单个reg
行上的值,可以使用case
表达式来完成:
INSERT INTO table2 (reg, value)
SELECT reg,
CASE COUNT(*) WHEN 1 THEN MAX(value) ELSE MAX(value) - MIN(value) END
FROM table1
GROUP BY reg