Выберите только один отдельный столбец - PullRequest
3 голосов
/ 06 декабря 2010

Полагаю, это простой вопрос, но я в течение часа изучаю его ответ.У меня есть таблица с тремя столбцами: «id», «id_x» и «name».Но он заполняется повторяющимися значениями, например:

id  id_x    name
1   100     Name_aaa
2   100     Name_aaa
3   100     Name_aaa
4   100     Name_aaa*
5   101     Name_bbb
6   101     Name_bbb*

Хорошо, хорошо, я не создал эту таблицу и не могу их изменить ... Я просто хочу знать, какой запрос я могу выполнитьчтобы вернуть только значения "100 - Name_aaa" и "101 - name_bbb" ... Обратите внимание, что после некоторых имен есть "*".Я бы хотел группировать только по "id_x".

Есть ли способ сделать это без использования подзапросов или объединений?

Заранее спасибо!

Ответы [ 4 ]

9 голосов
/ 06 декабря 2010

Несколько непроверено, но это должно сделать

select id_x, min(name) as name
from table
group by id_x
1 голос
/ 06 декабря 2010

Попробуйте это,

выберите отдельный id_x, имя из таблицы

0 голосов
/ 06 декабря 2010

Или

SELECT DISTINCT ON (id_x) id_x, name FROM table ORDER BY id_x, name;
0 голосов
/ 06 декабря 2010
select distinct
         id_x,
         case when name ~ E'\\*$' then substring(name, 1, length(name)-1)
              else name end
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...