2016-02-18 2 views
0

Я использую следующую логику.GroupBy X возвращает несколько записей/строк для X

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

Когда я импортировать результаты/плоский файл в Excel, есть несколько строк с одинаковым Уникальным идентификатором связанного с ним значением. Я что-то упускаю? Не следует ли выбрать min и Group By дать мне ОДНО значение для каждого отдельного уникального идентификатора?

Одно обновление. Тип данных Unique Identifer является числовым. Кроме того, Unique_Identifiers выглядят следующим образом: 1000137210003040. Когда я вставляю 1000137210003040 или 1000137210003047 в Excel, они оба возвращаются как 1000137210003040.

+0

Что-то еще должно происходить, что влияет на ваш результат. –

+0

Привет, можете ли вы предоставить подробную информацию о своей структуре, какой тип 'UNIQUE_Identifier' это' varchar'? вы проверили значения 'UNIQUE_Identifier'? есть какое-либо пространство или разница между возвращаемым 'UNIQUE_Identifier'? –

+0

Тип данных UNIQUE_Identifier является числовым. – ZJAY

ответ

2

Проблема заключается в том, что 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.

+0

Что делает «||» имею в виду? – ZJAY

+0

@ZJAY. , , Это оператор конкатенации строк. –