【问题标题】:How many distinct values in a database at 5 min intervals数据库中每隔 5 分钟有多少不同的值
【发布时间】:2021-07-21 01:57:07
【问题描述】:

尝试在this question 的基础上构建,我之前问过。我现在需要计算在每个位置看到多少不同的设备,而不是计算总设备数,因为每个设备都可以被多次看到。

这可以是 MySQL 或 Python Pandas 解决方案。

Sal 之前为我回答了这个问题。

数据库看起来像这样

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| pi_id    | varchar(64)  | NO   |     | NULL    |       |
| name     | varchar(127) | NO   |     | NULL    |       |
| location | varchar(255) | NO   |     | NULL    |       |
| mac_id   | varchar(200) | NO   |     | NULL    |       |
| rssi     | int(11)      | NO   |     | NULL    |       |  
| datetime | datetime     | NO   |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+

之前使用的答案是

SELECT concat( date_format(datetime,'%Y-%m-%d %k:')
             , lpad(floor(minute(datetime)/5)*5,2,'0')
             , ':00'
             ) datetime
     , location
     , count(1)
  FROM packet_locations
  GROUP BY date(datetime)
         , hour(datetime)
         , floor(minute(datetime)/5)
         , location;

【问题讨论】:

  • 查看COUNT(DISTINCT )
  • 谢谢你,有时候事情是如此明显,以至于他们只是从你身边擦肩而过。

标签: mysql sql pandas relational-database


【解决方案1】:

这可以通过不同的长度在 pandas 中解决:

# to_dist_cols are the columns that combined will have repeated values removed.
len(df.drop_duplicates(to_dist_cols))

或在 MySql 中使用COUNT(DISTINCT)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2023-03-27
    • 2019-07-03
    • 2016-01-11
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多