我有一个查询,在一列中返回name,在另一列中返回date。一个名称将有多行,每行包含不同的日期。是否可以计算每个日期之间的平均天数,为每个人分组,这样我就可以在一列中列出每个人一次,然后在另一列中列出平均天数?谢谢
c9x0cxw01#
两个日期之间的平均时间——假设它们是有序的——是最大值减去最小值除以小于计数的1。数据库中的日期函数差别很大,但其思想是:
select name, (max(date) - min(date)) / nullif(count(*) - 1, 0) from t group by name;
并非所有的数据库都支持日期差异。但是,所有人都有一些方法来衡量两次约会之间的天数。所以你的语法可能不同,尽管想法是一样的。在sql server中,这将是:
select name, datediff(day, min(date), max(date)) * 1.0 / nullif(count(*) - 1, 0) from t group by name;
1条答案
按热度按时间c9x0cxw01#
两个日期之间的平均时间——假设它们是有序的——是最大值减去最小值除以小于计数的1。
数据库中的日期函数差别很大,但其思想是:
并非所有的数据库都支持日期差异。但是,所有人都有一些方法来衡量两次约会之间的天数。所以你的语法可能不同,尽管想法是一样的。
在sql server中,这将是: