首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于查找最受欢迎小时的sql查询

用于查找最受欢迎小时的sql查询
EN

Stack Overflow用户
提问于 2013-02-28 19:55:50
回答 2查看 1.8K关注 0票数 0

给定一个包含2列的表

代码语言:javascript
复制
Name(type VARCHAR) Time(type DATETIME)

我需要编写一个SQL查询来查找条目数量最多的小时。

例如:

代码语言:javascript
复制
Name   Time 
----   ----
a     12:30pm
b     12:05pm
c     13:55pm
d     12:50pm
e     01:02am

所需结果为:12 1pm 1 1pm

我的总体想法是:

1)按小时分组行

2)统计行数/组数

3)按降序排列计数

4)打印最大计数

我需要帮助将此转换为SQL查询。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-28 19:58:42

这很简单..。

代码语言:javascript
复制
SELECT HOUR(Time) as Hr,COUNT(*) AS Cnt
FROM MyTable
GROUP BY Hour(Time)
ORDER BY Cnt DESC
LIMIT 1

GROUP BY Hour(Time) -按小时分组

ORDER BY Cnt DESC -这将使其按计数排序(按降序)

LIMIT 1 -因为您只需要一个排名靠前的结果

票数 3
EN

Stack Overflow用户

发布于 2013-02-28 23:30:02

据我所知,这是您正在寻找的Oracle版本:

代码语言:javascript
复制
SELECT t_stamp
     , MAX(count(t_stamp)) OVER (PARTITION BY t_stamp ORDER BY t_stamp)  hits_per_hr_interval
  FROM
  (
  SELECT name, EXTRACT(hour From Cast(t_stamp as timestamp)) t_stamp
    FROM stack_test
  )
  GROUP BY t_stamp
  /

  T_STAMP    HITS_PER_HR_INTERVAL
  -------------------------------
  12          3
  13          2

或者使用row_number():

代码语言:javascript
复制
SELECT * FROM
(
 SELECT t_stamp
      , Count(t_stamp) OVER (PARTITION BY t_stamp ORDER BY t_stamp) hits_per_hr_interval 
      , ROW_NUMBER() OVER (PARTITION BY t_stamp ORDER BY t_stamp) hr_seq
   FROM
   (
   SELECT EXTRACT(hour From Cast(t_stamp as timestamp)) t_stamp
     FROM stack_test
   )
  )
  -- WHERE hr_seq = 1  -- optional to see only first row per group as in above example 
  /

 T_STAMP    HITS_PER_HR_INTERVAL    HR_SEQ
 ------------------------------------------
 12         3                       1
 12         3                       2
 12         3                       3
 13         2                       1
 13         2                       2

你可以添加更多的过滤器,比如你的工作时间只在12点到1点之间...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15134909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档