假设我们有一个具有如此简单结构的“汽车”表…
car_id INT
color ENUM('black','white','blue')
weight ENUM('light','medium','heavy')
type ENUM('van','sedan','limo')
拳头,我选择的是汽车(1,黑色,重型,豪华轿车),然后我想获取相关汽车的列表,这些列表按匹配列的数量排序(没有任何列的权重)。所以,首先我期望看到(黑色,重型,豪华轿车)汽车,然后我期望看到只有2个匹配字段的汽车,等等。
是否可以使用SQL执行这种排序?
对不起,我的英语,但我真的希望我对您的问题很清楚。
谢谢你。
可能有几种方法可以优化子查询,但是不使用case
语句或次优联接子句:
select
*
from
(
select
selection.CarId,
selection.Colour,
selection.Weight,
selection.Type,
3 as Relevance
from
tblCars as selection
where
selection.Colour = 'black' and selection.Weight = 'light' and selection.Type = 'van'
union all
select
cars.CarId,
cars.Colour,
cars.Weight,
cars.Type,
count(*) as Relevance
from
tblCars as cars
inner join
(
select
byColour.CarId
from
tblCars as cars
inner join
tblCars as byColour
on
cars.Colour = byColour.Colour
where
cars.Colour = 'black' and cars.Weight = 'light' and cars.Type = 'van'
and
byColour.CarId <> cars.CarId
union all
select
byWeight.CarId
from
tblCars as cars
inner join
tblCars as byWeight
on
cars.Weight = byWeight.Weight
where
cars.Colour = 'black' and cars.Weight = 'light' and cars.Type = 'van'
and
byWeight.CarId <> cars.CarId
union all
select
byType.CarId
from
tblCars as cars
inner join
tblCars as byType
on
cars.Type = byType.Type
where
cars.Colour = 'black' and cars.Weight = 'light' and cars.Type = 'van'
and
byType.CarId <> cars.CarId
) as matches
on
cars.CarId = matches.CarId
group by
cars.CarId,
cars.Colour,
cars.Weight,
cars.Type
) as results
order by
Relevance desc
输出:
CarId Colour Weight Type Relevance
1 black light van 3
3 white light van 2
4 blue light van 2
5 black medium van 2
6 white medium van 1
7 blue medium van 1
8 black heavy limo 1
问题内容: 我有这个查询: 是否可以根据首先匹配的条件对从该查询返回的记录进行排序。我想先获取所有匹配的记录,然后再获取其他匹配的记录。 例如,如果我有以下记录: 我希望对它们进行如下排序: 有可能吗? 问题答案:
我有一个包含100,000行(人)和500列(概率)的数据集,我想用测试概率扫描各列,以找到大于和最接近测试值的列标题(a、b或c ),并将标题记录在新列中。 以数据表为例: 新列将记录“a”(0.1 我最初做它作为一个矩阵,而不是data.table.下面的代码不会工作,但给出了一个想法,它是如何运作的 如何跨 data.table 中的列执行此匹配。我认为我需要使用 来自 的查询。但不确定如何
问题内容: 我正在尝试使用with子句,并且希望能够以与清单中的元素相同的顺序返回结果。例如: 我希望他们以相同的顺序回来。理想的情况是,如果我能有一个这样的声明,那就太好了: 我已经看到了使用或关键字定义某种自定义排序的查询示例。但是,在所有这些示例中,它们的顺序都是针对一组预定的选项。鉴于我的订购完全取决于用户输入的搜索条件,因此可能有2个选项的列表或100个要订购的列表… 有任何想法吗?我不
我要提前道歉——我知道这个问题可能已经在其他地方得到了解答,但是我似乎无法找到我需要的答案,也无法设法让我找到的其他代码适应我的需要。 我有一个数据框: 我想生成一个一个和两个之间COUNT值之差的数据帧,每个FILE都有一行,即。 我确信我应该能够相当容易地使用基础R或Plyr做到这一点,但我有点卡住了。任何人都可以建议一个好方法来做到这一点,也许在Plyr上有很好的教程,可能会帮助我解决将来的
本文向大家介绍查找图的匹配数,包括了查找图的匹配数的使用技巧和注意事项,需要的朋友参考一下 问题陈述 下图的匹配数字是多少? 解 顶点数= 9 我们只能匹配8个顶点。 匹配号码为4。
您能建议如何在Spring Data JPA存储库中编写查询吗?情况是这样的:我有两个实体:客户和产品,关系为“OneToMany”——意味着一个客户可能有多个产品。在代码中,看起来客户实体已经设置了产品,产品引用了客户,非常简单。如果我从DB JSON中检索Customer,将如下所示: 问题是,我如何向DB写入查询,以查找其产品与通过产品集合的产品匹配的所有客户?例如,我想找到所有拥有type