我使用以下逻辑。

SELECT  min(Value1),
    UNIQUE_Identifier
FROM    panel
WHERE (some criteria = 'x')
GROUP BY UNIQUE_Identifier

当我将结果/平面文件导入到Excel中时,有多行具有与其关联值相同的唯一标识符。我错过什么了吗?select min和Group By难道不应该为每个不同的唯一标识符提供一个值吗?
一次更新。唯一标识符的数据类型是数字。此外,唯一的_标识符如下所示:1000137210003040。当我将1000137210003040或1000137210003047粘贴到Excel中时,它们都返回为1000137210003040。

最佳答案

问题是Excel将数据作为数字导入。数字表示为浮点数,尾随数字四舍五入。我认为Excel保留了15位数的精度。
强制字符串的一种方法是在查询中将值转换为字符串:

SELECT  min(Value1), 'UQ' || UNIQUE_Identifier
FROM    panel
WHERE (some criteria = 'x')
GROUP BY UNIQUE_Identifier;

另外,用一个引号作为前缀也常常有效:
SELECT  min(Value1), '''' || UNIQUE_Identifier
FROM    panel
WHERE (some criteria = 'x')
GROUP BY UNIQUE_Identifier;

或者用双引号将值括起来:
SELECT  min(Value1), '"' || UNIQUE_Identifier || '"'
FROM    panel
WHERE (some criteria = 'x')
GROUP BY UNIQUE_Identifier;

哪种方式最有效取决于如何将数据导入Excel。

关于sql - GroupBy X返回X的多个记录/行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35470246/

10-11 04:24
查看更多