我有一个包含这些值的表:“user_id、text、text_lang、user_lang”。
字段 text_lang 包含表示文本语言的区域设置快捷方式('en'、'de')。我现在想通过选择每个 user_id 出现次数最多的 text_lang 来设置(未知/空)“user_lang”。
我有一个有效的 select 语句,它返回每个 user_id 出现次数最多的 text_lang,但我不知道如何根据 ID 更新每行的 user_lang。
SELECT user_id, text_lang
FROM (
SELECT user_id,
text_lang,
max(text_lang_count) OVER (PARTITION BY user_id) max_count,
text_lang_count
FROM (
SELECT user_id,
text_lang,
COUNT(text_lang) AS text_lang_count
FROM test
GROUP BY user_id, text_lang
) AS xx
) AS xy
WHERE tweet_lang_count = max_count
我假设(但不确定)MySQL/SQL: Update with related subquery from the updated table 本身包含与我的问题密切相关的内容,但我无法使该解决方案适应这个特定问题。