#sql
#sql
Вопрос:
У меня есть таблица клиентов с почтовыми адресами. Я пытаюсь добавить «вес» каждому клиенту в зависимости от того, делятся ли они этим адресом с другими клиентами, следующим образом:
UPDATE
CT
SET
Household_Weight = Cnt
FROM
CT
INNER JOIN
(
SELECT
Mail_Address,
COUNT(*) AS Cnt
FROM
CT
GROUP BY
Mail_Address
)
Любой совет?
Комментарии:
1. Когда вы группируете по — у вас всегда есть ключ разрыва уровня и общее количество. Вы не можете установить значение 1 столбца равным 2
2. Пометьте свой вопрос базой данных, которую вы используете.
Ответ №1:
Как насчет использования подзапроса?
update ct
set Household_Weight = (SELECT COUNT(*) AS Cnt FROM CT CT2 WHERE ct2.Mail_Address = ct.Mail_Address);
Не все базы данных поддерживают FROM
in UPDATE
.
Комментарии:
1. Формулировка вопроса неясна. Кто знает, существует ли Mail_Address вообще на ct! 😉