gpt4 book ai didi

sql - 根据列的最大值从行中选择多列

转载 作者:行者123 更新时间:2023-11-29 14:04:09 26 4
gpt4 key购买 nike

我正在尝试创建一个包含每个学生每天最好成绩的摘要。

示例数据:

╔════╦════════════╦═══════╦═══════════════════╗
║ id ║ student_id ║ score ║ date_time ║
╠════╬════════════╬═══════╬═══════════════════╣
║ 1 ║ 1 ║ 5 ║ 2018-07-01 9:30 ║
║ 2 ║ 1 ║ 3 ║ 2018-07-01 15:30 ║
║ 3 ║ 1 ║ 7 ║ 2018-07-02 8:30 ║
║ 4 ║ 2 ║ 7 ║ 2018-07-01 9:30 ║
║ 5 ║ 2 ║ 8 ║ 2018-07-01 15:30 ║
║ 6 ║ 2 ║ 8 ║ 2018-07-02 8:30 ║
║ 7 ║ 3 ║ 4 ║ 2018-07-02 10:30 ║
║ 8 ║ 3 ║ 10 ║ 2018-07-02 13:45 ║
╚════╩════════════╩═══════╩═══════════════════╝

期望的结果:

╔════════════╦════════════╦═════════════╦═════════════╦══════════════════════╗
║ student_id ║ date ║ score_total ║ best_score ║ best_score_date_time ║
╠════════════╬════════════╬═════════════╬═════════════╬══════════════════════╣
║ 1 ║ 2018-07-01 ║ 8 ║ 5 ║ 2018-07-01 9:30 ║
║ 1 ║ 2018-07-02 ║ 7 ║ 7 ║ 2018-07-02 8:30 ║
║ 2 ║ 2018-07-01 ║ 15 ║ 8 ║ 2018-07-01 15:30 ║
║ 2 ║ 2018-07-02 ║ 8 ║ 8 ║ 2018-07-02 8:30 ║
║ 3 ║ 2018-07-02 ║ 14 ║ 10 ║ 2018-07-02 13:45 ║
╚════════════╩════════════╩═════════════╩═════════════╩══════════════════════╝

这是我到目前为止(和我的问题):

SELECT 
student_id,
date_time::date as date,
SUM(score) as score_total,
MAX(score) as best_score,
date_time as best_score_date_time -- << HOW TO GET THIS ONE?
FROM
score
GROUP BY
student_id,
date_time::date

最佳答案

下面是简单的解决方案。

替换

date_time as best_score_date_time

(  array_agg(date_time order by score desc))[1]

关于sql - 根据列的最大值从行中选择多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51335043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com