Как я могу скрыть дубликаты из моего запроса select, я не хочу, чтобы имена и Id показывались более одного раза - PullRequest
1 голос
/ 03 июля 2019

У меня есть две таблицы "punetoret" и "pagat2". Я хочу показать Id и Name только один раз, без дубликатов. Этот запрос показывает мне такую ​​таблицу

Id Name PagaBruto
1  asd   220
1  asd   1350
2  asd2  85
2  asd2  1350

Как скрыть дубликаты: \?

вот мой запрос

SELECT DISTINCT
       p.Id,
       p.Name, pg.PagaBruto
FROM punetoret  p
     left join pagat2 pg ON p.Id = pg.Name_Id
GROUP BY p.Id,
         p.Name,
         pg.PagaBruto

image

1 Ответ

0 голосов
/ 03 июля 2019

Во-первых, SELECT DISTINCT является избыточным с GROUP BY.

Во-вторых, если этот запрос

SELECT p.Id, p.Name, pg.PagaBruto
FROM punetoret p LEFT JOIN
     pagat2 pg
     ON p.Id = pg.Name_Id
GROUP BY p.Id, p.Name, pg.PagaBruto

возвращает указанные вами результаты, тогда есть разница в одном столбце, который вы не видите. Вы не предоставляете достаточно информации, чтобы определить, что это такое.

Я думаю, что это будет делать то, что вы хотите:

SELECT p.Id, MAX(p.Name) as p.Name, MAX(pg.PagaBruto) as PagaBruto
FROM punetoret p LEFT JOIN
     pagat2 pg
     ON p.Id = pg.Name_Id
GROUP BY p.Id;

Что является конечной причиной? Это зависит от типов данных. Я предполагаю, что Name в порядке, потому что он из той же таблицы, что и id - и я предполагаю, что id уникален. Однако строки в разных строках могут содержать разные скрытые символы (например, начальные пробелы), которые трудно обнаружить.

Целые и числовые значения обычно хороши, но числа с плавающей запятой могут выглядеть одинаково, но могут быть разными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...