我想在sqlite中找到两个关系中最常出现的字符串。但是,我不能使用自然连接运算符,因为字符串在模式中具有相同的字段名称,用于我需要操作的两个关系。
假设我的表格中包含以下值:
X Y
names names
-- --
'a' 'a'
'b' 'c'
'c' 'c'
'c' 'x'
'b' 'z'
由于这两个表都有名称作为字段,我发现很难找到最常出现的字符串。我应该怎么做呢?
答案 0 :(得分:0)
您可以使用表名称为字段添加前缀,也可以为特定字段添加别名以消除歧义 - 但我认为您不需要做任何类似的事情来解决此问题。我会做这样的事情:
SELECT names,
count(*)
FROM (SELECT names FROM x UNION ALL SELECT names FROM y)
GROUP BY names
ORDER BY count(*) DESC;
结果
names|count(*)
c|4
a|2
b|2
x|1
y|1