数据库中每隔5分钟有多少个不同的值

时间:2016-03-04 15:36:49

标签: mysql sql pandas relational-database

我之前曾问过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;

1 个答案:

答案 0 :(得分:0)

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

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

或在 MySql 中使用 COUNT(DISTINCT)