Как отображать уникальные записи без использования distinct?

#sql #oracle

#sql #Oracle

Вопрос:

Я использую Oracle SQL. У меня есть таблица в качестве теста, а столбцы — A, B, C. В столбце A значения имеют вид:

 1000,
1000,
1000,
2000,
2000,
3000
 

Результат будет из столбца A:

   A
1000
2000
3000
 

Примечание: Кроме использования Distinct синтаксиса, .
Выберите Distinct A из теста;

Комментарии:

1. Какую СУБД вы используете?

2. Я использую только Oracle SQL

Ответ №1:

Использовать GROUP BY :

 Select A from Test GROUP BY A
 

Group by , группирует все похожие значения указанного столбца в одно значение (группу).

Демонстрация Oracle

Хотя, Group By это стандартный sql, и не имеет значения, какую базу данных вы используете.

Комментарии:

1. Это дает только одну запись 1000, но мой результат похож на 1000, 2000, 3000

2. @NarasimhaL Я предоставил демонстрацию к ответу. Проверьте ссылку и посмотрите, нет ли чего-нибудь неправильного.

Ответ №2:

Используйте GROUP BY предложение.

Схема (MySQL v5.7)

 CREATE TABLE A
(
  id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  someData INT
);

INSERT INTO A VALUES (DEFAULT, 1000),
                     (DEFAULT, 1000),
                     (DEFAULT, 2000),
                     (DEFAULT, 1000),
                     (DEFAULT, 2000),
                     (DEFAULT, 3000),
                     (DEFAULT, 3000);
 

Запрос #1

 SELECT someData
FROM A
GROUP BY someData;
 

Вывод

 | someData |
| -------- |
| 1000     |
| 2000     |
| 3000     |
 

Просмотр на скрипке DB

Комментарии:

1. Спасибо Cid за предоставленную подробную информацию в MySQL, но моя база данных — SQL,