Как выбрать дубликаты на основе указанных c столбцов - PullRequest
0 голосов
/ 26 марта 2020

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

Исходная таблица содержит 5 столбцов.

b_id  | col1  | col2 | col3 | col4 
1     | c11   | c21  | c31  | c41
2     | c21   | c22  | c23  | c24
3     | c31   | c22  | c23  | c24
4     | c41   | c42  | c44  | c44
4     | c41   | c52  | c53  | c54
6     | c61   | c62  | c63  | c64
6     | c61   | c72  | c73  | c74
7     | c71   | c72  | c73  | c74

Я бы хотел выбрать только:

b_id | col1  | col2 | col3 | col4 
1     | c11   | c21  | c31  | c41
2     | c21   | c22  | c23  | c24
3     | c31   | c22  | c23  | c24
4     | c41   | c42  | c44  | c44
6     | c61   | c62  | c63  | c64
7     | c71   | c72  | c73  | c74

, поскольку b_id & col1 имели дубликаты. Я не против, если дубликаты есть или нет на col2, col3 и col4.

Я пробовал это:

DROP TABLE IF EXISTS 
new_table

CREATE TABLE 
new_table

AS (

select distinct 
b_id
, col1

from 
old_table

WHERE
col2 IN (val1, val2, val3, val4)
    AND col4 = xxx

);

, но это выбирает нужные мне разные значения, но только эти два столбцы, а не остальные столбцы ...: - /

Есть идеи? Спасибо!

1 Ответ

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

это должно сработать:

select distinct b_id, col1,max(col2),max(col3),max(col4)
from old_tables
group by b_id, col1;

(если вам все равно, какое значение будет взято из col2-col4)

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