Как получить уникальную запись? - PullRequest
0 голосов
/ 20 февраля 2020

Я получаю выходные записи, как показано ниже, используя соединение из разных таблиц

key   init_amt   get_amt  pct
-------------------------------
12      234        150     30
13      56         45       0
15      996        100      0
12      234        150     30
57      45         20       0
33      123        98      30
15      567        400     30

Ниже приведен запрос, который я сделал, чтобы получить выходные данные, как указано выше

SELECT key, SUM(init_amt), SUM(get_amt), MAX(get_amt), pct
(SELECT key, init_amt, get_amt, pct
 FROM amount mt INNER JOIN pct pc
 ON mt.key = pc.int_key)
 GROUP BY key

Я хочу уникальные записи как key = 15, 33 ...so on Но проблема в том, что я получаю дубликат записи, как key = 12. Как мне этого добиться.

note: Query am gave above should not be completely change, we can make changes only becz it a dito of live

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

В Oracle ваш запрос будет ошибочным, поскольку pct не является статистическим столбцом и не является частью предложения group by. Если вам нужна уникальная запись для key, используйте агрегатные функции для pct, например:

SELECT key, SUM(init_amt), SUM(get_amt), MAX(get_amt), MAX(pct)
FROM (...)
GROUP BY key
0 голосов
/ 20 февраля 2020

Добавить отличительные после выбора

SELECT distinct key, SUM(init_amt), SUM(get_amt), MAX(get_amt), pct
(SELECT key, init_amt, get_amt, pct
 FROM amount mt INNER JOIN pct pc
 ON mt.key = pc.int_key)
 GROUP BY key
...