SELECT DISTINCT …
удаляет повторяющиеся строки. Есть ли способ удалить дубликаты столбцов, , то есть столбцы, где все значения одинаковы? Я просматриваю устаревшую схему для «отличительных особенностей» некоторых строк, так что это было бы очень полезно. Если это облегчает задачу, все столбцы являются простыми типами, такими как INT
, TEXT
и TIMESTAMP
. По сути, при наличии такой таблицы:
CREATE TEMPORARY TABLE column_test
(
foo TEXT,
bar INT,
baz BOOLEAN,
bat TIMESTAMP WITH TIME ZONE
);
INSERT INTO column_test (
foo, bar, baz, bat
) VALUES
('lorem ipsum', 1, TRUE, '2000-01-01 UTC'),
('lorem ipsum', 2, TRUE, '2000-01-01 UTC'),
('other', 3, TRUE, '2000-01-01 UTC');
можно ли написать запрос, который будет выбирать только столбцы foo
и bar
, поскольку это единственные столбцы с более чем одним значением? Примерно так:
SELECT columns_with_more_than_one_value(*) FROM column_test;
foo bar
'lorem ipsum' 1
'lorem ipsum' 2
'other' 3
Полагаю, одним из способов будет SELECT *
, транспонировать результат, удалить все строки, в которых все значения одинаковы, а затем снова транспонировать, но это будет очень сложный, и я не знаю, как сохранить исходные имена столбцов в результате.