Разница между двумя запросами - PullRequest
1 голос
/ 02 марта 2020

Знаете ли вы, какова практическая разница в выбранной части этих двух запросов?

Запрос1:

SELECT Table1.column1, Table1.column2, COUNT(DISTINCT(Table1.column1 || '|' || Table1.column2))
FROM Table1
WHERE... 
GROUP BY table1. Column1, table1. Column2 

Запрос2:

SELECT Table1.column1, Table1.column2, COUNT(*)
FROM Table1
WHERE...
GROUP BY table1. Column1, table1. Column2 

Ответы [ 2 ]

3 голосов
/ 02 марта 2020

Они очень разные.

Второй запрос вернет количество строк в каждой группе.

Первый запрос вернет 1 для каждой группы, потому что вы подсчитываете значения DISTINCT, а внутри группы вычисляемое вами выражение является постоянным.

Какой ваш пример показывает, что два запроса возвращают один и тот же результат? Он не должен иметь дубликатов (column1, column2); в противном случае вы увидите разницу.

0 голосов
/ 02 марта 2020

У вас будут разные ответы на запросы:

  1. Возвратите количество различных комбинаций. Больше информации здесь https://community.oracle.com/ideas/18664
  2. Возврат общего числа строки с одинаковыми данными
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...