选择嵌套的公共属性

时间:2011-04-23 21:36:31

标签: sql sqlite

我正在使用以下语句查询我的数据库并返回项目a的最常见颜色样式。获得该数据后,我想选择最常用的数据。

select color, style, size
from orders
where item = 'item a'
group by color, style
order by count(*) desc
limit 1

如果按颜色,样式,大小分组,则不会计算颜色数量,样式正确。我怎样才能从db获得最后一条信息?

2 个答案:

答案 0 :(得分:0)

使用第二个查询来获得最常见的尺寸

答案 1 :(得分:0)

说实话,很难看出一个查询如何比三个查询更有效。但是如果必须,您可以将它们合并到一个union

的查询中
select  'Common Color' as Id
,       (select color from orders where item = 'item a' group by color 
           order by count(*) desc limit 1) as Value
union all
select  'Common Style'
,       (select style from orders where item = 'item a' group by style 
            order by count(*) desc limit 1)
union all
select  'Common Size'
,       (select size from orders where item = 'item a' group by size 
            order by count(*) desc limit 1)

子查询可以消除limit适用于整个联合或仅仅是一个部分的任何歧义。