我使用以下逻辑。
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/