【问题标题】:I need a query to count the number of user instances for each distinct timestamp in SQL Server 2005我需要一个查询来计算 SQL Server 2005 中每个不同时间戳的用户实例数
【发布时间】:2018-01-23 13:32:50
【问题描述】:

这是我的数据表:

userid  timestamp
------------------------
user1   2017-08-15 17:00
user1   2017-08-15 17:00
user1   2017-08-15 17:00
user2   2017-08-15 17:00
user2   2017-08-15 17:00
user3   2017-08-15 17:00
user1   2017-08-15 18:00
user1   2017-08-15 18:00
user2   2017-08-15 18:00
user2   2017-08-15 18:00
user2   2017-08-15 18:00
user3   2017-08-15 18:00

我希望结果如下所示:

userid    countoftimestamp
-----------------------------
user1     3_2017-08-15 17:00
user2     2_2017-08-15 17:00
user3     1_2017-08-15 17:00
user1     2_2017-08-15 18:00

等等。

【问题讨论】:

  • “我需要一个查询”不是一个问题。您是否考虑过聘请程序员?
  • 这不是勺子喂食网站。请说明您尝试了什么以及该尝试发生了什么。
  • 不要 concat 将计数计入时间戳...将其保存在单独的列中,这样您以后就不必解析它以使用它...所以您不必'不改变时间戳的数据类型。话虽如此,下面的两个解决方案都回答了这个问题,这是其他 100 个问题的重复。
  • 重复的链接错误,虽然它也是。Here is a better duplicate post

标签: sql sql-server sql-server-2005


【解决方案1】:
SELECT userid, timestamp, count(*)
FROM datatabable
GROUP BY  userid, timestamp

【讨论】:

    【解决方案2】:

    您可能会注意到我使用 varchar(16) 将您的时间戳截断为分钟(不包括秒和毫秒)

    示例

    Select userid
          ,countoftimestamp = cast(sum(1) as varchar(25))+'_'+convert(varchar(16),timestamp,20)
     From  YourTable
     Group By userid,convert(varchar(16),timestamp,20)
    

    退货

    【讨论】:

    • 2005 没有 concat :(
    • @SyedUmairRizvi 对不起,我错过了。一分钟快速更新
    • @SyedUmairRizvi 2005 年更新
    • @SyedUmairRizvi 很高兴它有帮助
    • 你很棒,很善良。 :)
    猜你喜欢
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 2020-03-30
    相关资源
    最近更新 更多