【问题标题】:simple SQL query to find average based on two columns基于两列查找平均值的简单 SQL 查询
【发布时间】:2019-05-02 22:30:10
【问题描述】:
 GAME                                 TIME
 1                                    00:23:24
 2                                    00:19:38                
 3                                    00:09:23
 4

我正在尝试编写一个查询,给出人们在每款游戏上花费的平均时间(以分钟为单位)并生成前 10 款游戏的列表(以最大平均花费时间计)?

这里有点卡住了;

'''select from table_name 

GAME,  AVG(TIME), 
GROUP_BY GAME 
LIMIT 10;'''

【问题讨论】:

  • 是Mysql还是Sql Server
  • 您使用的是 MySQL 还是其他 DBMS?因为语法可能不同。
  • 我在使用 PostgreSQL
  • 不确定,但您的TIME 列似乎也是TIME 类型。在 PostgreSQL 中,TIME 是一天中的时间,而不是持续时间。您可能需要考虑使用INTERVAL,因为它可以让您超过 24 小时。

标签: sql postgresql average


【解决方案1】:

也许使用order bylimit

select GAME, AVG(TIME) as avg_time
from table_name
group by game
order by avg_time desc
limit 10

【讨论】:

  • 这行得通,但它也返回秒,我不想显示秒,我将如何分解时间组件?
  • extract(field from expr) 返回间隔的componentfield 可以是hourminutesecond 等。
猜你喜欢
  • 2018-07-12
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-25
  • 2020-08-10
  • 2022-10-26
  • 1970-01-01
相关资源
最近更新 更多