常见的HQL面试题

  1. 查询出最近 3 天内所有订单的金额总计。
SELECT SUM(amount) AS total_amount
FROM orders
WHERE order_date BETWEEN CURRENT_DATE - 3 AND CURRENT_DATE;
  1. 查询出所有订单中,订单金额大于 1000 元的订单数量。
SELECT COUNT(*) AS order_count
FROM orders
WHERE amount > 1000;
  1. 查询出所有订单中,订单金额在 1000 元至 2000 元之间的订单。
SELECT *
FROM orders
WHERE amount BETWEEN 1000 AND 2000;
  1. 查询出所有订单中,订单金额在 1000 元至 2000 元之间的订单,并按照订单金额降序排列。
SELECT *
FROM orders
WHERE amount BETWEEN 1000 AND 2000
ORDER BY amount DESC;
  1. 查询出所有订单中,订单金额在 1000 元至 2000 元之间的订单,并按照订单日期升序排列,如果订单日期相同,则按照订单金额升序排列。
SELECT *
FROM orders
WHERE amount BETWEEN 1000 AND 2000
ORDER BY order_date, amount;
  1. 查询出所有订单中,订单金额在 1000 元至 2000 元之间的订单,并按照订单日期升序排列,如果订单日期相同,则按照订单金额降序排列。
SELECT *
FROM orders
WHERE amount BETWEEN 1000 AND 2000
ORDER BY order_date, amount DESC;
  1. 查询出所有订单中,订单金额在 1000 元至 2000 元之间的订单,并按照订单日期分组,统计每个日期的订单数量。
SELECT order_date, COUNT(*) AS order_count
FROM orders
WHERE amount BETWEEN 1000 AND 2000
GROUP BY order_date;
  1. 查询出所有订单中,订单金额在 1000 元至 2000 元之间的订单,并按照订单日期分组,统计每个日期的订单金额总计。
SELECT order_date, SUM(amount) AS total_amount
FROM orders
WHERE amount BETWEEN 1000 AND 2000
GROUP BY order_date;
  1. 查询出所有订单中,订单金额在 1000 元至 2000 元之间的订单,并按照订单日期分组,统计每个日期的订单金额总计,如果订单金额总计超过 10000 元,则将订单金额总计标记为红色,并将订单金额总计按降序排列。
SELECT order_date, SUM(amount) AS total_amount,
CASE
WHEN SUM(amount) > 10000 THEN 'red'
ELSE 'black'
END AS color
FROM orders
WHERE amount BETWEEN 1000 AND 2000
GROUP BY order_date
ORDER BY total_amount DESC;

10.查询出所有订单中,订单金额在 1000 元至 2000 元之间的订单,并按照订单日期和订单商品分组,统计每个日期每个商品的订单数量。

SELECT order_date, product_id, COUNT(*) AS order_count
FROM orders
WHERE amount BETWEEN 1000 AND 2000
GROUP BY order_date, product_id;
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值