d202547
目录
一、sql-每月交易 I
二、 sql-按日期分组销售产品
三、sql-列出指定时间段内所有的下单产品
四、 第k个大的数
一、sql-每月交易 I
题目意思就是把国家名称,和年月一样的分为一组,在这组数据中进行计数
题目给的日期格式是yyyy-mm-ss,可以使用left()函数截取一下
select left(trans_date,7) as 'month',country,count(state) as 'trans_count',
count(if(state = 'approved',1,null)) as 'approved_count',
sum(amount) as 'trans_total_amount',
sum(if(state = 'approved',amount,0)) as 'approved_total_amount'
from Transactions
group by country,left(trans_date,7)
二、 sql-按日期分组销售产品
select sell_date,COUNT(DISTINCT product) num_sold,
GROUP_CONCAT(DISTINCT product) products
from Activities
group by sell_date
三、sql-列出指定时间段内所有的下单产品
写的莫名其妙 感觉需要找个时间捋一下mysql 什么先执行了
select p.product_name,sum(if(left(order_date,7) = '2020-02',unit,0)) as 'unit'
from Orders o1 left join Products p on o1.product_id = p.product_id
group by o1.product_id
having sum(if(order_date like '2020-02%',unit,0)) >= 100
四、 第k个大的数
public int findKthLargest(int[] nums, int k) {
PriorityQueue<Integer> p = new PriorityQueue<>(((a,b) -> b-a));
for(int val : nums){
p.offer(val);
}
while(k-- > 1){
p.poll();
}
return p.peek();
}