题目(一)
订单中有多个商品,想要查询订单表(Orders)中同时包含有商品A、商品B、商品C等的所有订单信息。
希望得到如下结果:
解答
解题思路
- 查询出商品品种有哪些。
- 查询每个订单拥有商品品种的数量。
- 按照商品品种数量倒序排序,取最顶部的一个。
(Mysql)
SELECT
b.order_id
FROM
test_7_orders b
WHERE
EXISTS (
SELECT
a.goods
FROM
test_7_orders a
GROUP BY
a.goods
)
GROUP BY
b.order_id
ORDER BY
count(b.order_id) DESC
LIMIT 1
========================================================
题目(二)
你能写一个 SQL 查询语句,找到只出现过一次的数字中,最大的一个数字吗?下面是测试数据。
对于上面给出的样例数据,你的查询语句应该返回如下结果:
解答
解题思路
- 聚合函数分组查出每个数出现的次数。
- 按照次数倒序排序,并按照数字倒序排序,查询顶部的一个。
(MySQL)
SELECT
a.num
FROM
test_8_num a
GROUP BY
a.num
ORDER BY
count(a.num) DESC,
a.num DESC
LIMIT 1