当前位置: 首页 > 面试题库 >

SQL中棘手的“路由”排序

仇高韵
2023-03-14
问题内容

有一段时间遇到这个麻烦。

我有这样的数据库:

Car_ID   Car_Brand   Car_Model   Car_Price
   1     Ford        Fiesta       4000
   2     Ford        Mustang     29000
   3     Ford        Focus       12000
   4     Honda       Civic       15000
   6     Honda       Jazz         5000
   7     Toyota      Prius       14000

我要执行搜索,找到最便宜的汽车,然后按价格升序订购其余相同品牌的汽车。

我希望我的输出是这样的:

Car_ID   Car_Brand   Car_Model   Car_Price
   1     Ford        Fiesta       4000
   3     Ford        Focus       12000
   2     Ford        Mustang     29000
   6     Honda       Jazz         5000
   4     Honda       Civic       15000
   7     Toyota      Prius       14000

最便宜的汽车是福特嘉年华(Forest
Fiesta),因此,其余福特车型都按照价格直接订购。然后,本田拥有第二便宜的车型,因此爵士车和其他本田车紧随其后,依此类推。

这可能吗?


问题答案:

您需要做的是创建一个瞬态数据集,该数据集包含car_brand和该品牌的最低价格(我将其称为brand_price),然后将数据联接回到原始的car表中。这将为您提供对数据进行排序所需的其他信息(brand_price):

 SELECT car_id, car_brand, car_model, price FROM cars C1
    JOIN (select car_brand, MIN(price) AS brand_price FROM cars GROUP BY car_brand) C2
      ON C1.car_brand = C2.car_brand
    ORDER BY C2.brand_price, C1.car_brand, C1.price


 类似资料:
  • 问题内容: 我有一个与该类型不兼容的sql语句,因此我正在尝试对其进行改版以使其正常工作。 它的基本要旨是这样的: 因此,将两个不同(但相似)表上的复杂不同语句的结果合并在一起。 问题在于类型(SHAPE字段)不能包含在不同的语句中,因为它不是可比较的类型。 我可以从参加联合的两个子查询中删除该字段。但是我想在解析完这些子查询后找回它。如果我知道A列的值,则可以获取该字段。 所以我的问题是 :如何

  • Netty中是否有任何嵌入式优先级机制可以帮助我决定哪些消息比其他消息发送得更频繁?

  • 下面的代码仅在观察2完成后才从观察1发出项。 我需要实现另一种行为 第二个可观测对象仅发射项目,而第一个可观测对象为空,然后发射第一个可观测对象的项目。 我无法找到只使用基本运算符的正确解决方案,自定义运算符startWithDefault的正确RxJava 2实现应该是什么样子? 附笔。 由于种族原因,在可观察到立即发射的情况下,这不是正确的解决方案1

  • 我有一个i18n项目在Symfony 4.1上运行。 我想实现一些路由,如: /= 在本文之后,我将使用注释处理路由,并为注释路由设置全局前缀: 这样,从'.../src/Controller/'注释中定义的所有路由都带有前缀,这导致我的“选择语言”页面和主页之间的冲突。 我想从i18n前缀中排除“选择语言”页面,这样当主页可以停留在 /fr或 /en.时,我就可以使用“/”了 有什么办法可以做到

  • 有一段时间想弄明白,但运气不好。我有以下表格(MS-SQL 2008):学生ID–电子邮件–档案ID 课程 courseID–名称 学生资源 学生ID–课程ID 配置文件 课程设置 学生学习日志 logID-studentID-courseID-accessDate 每个学生在注册时,都会被分配一个个人资料。对于每个配置文件都有一些必修课程。这些必修课程以及用户参加的任何其他课程都保存在学生课程表

  • 问题内容: 我有一个像防火墙/调度程序一样位于其他微服务前面的节点应用程序,它使用如下所示的中间件链: 但是对于特定的GET路由,我想跳过所有这些,除了rateLimiter和proxy。他们是否可以使用:except /:only来设置类似Rails before_filter的过滤器? 问题答案: 即使expressjs中没有内置的中间件过滤器系统,您也可以通过至少两种方法来实现。 第一种方法