gpt4 book ai didi

MySQL 在选择中选择

转载 作者:可可西里 更新时间:2023-11-01 07:37:12 25 4
gpt4 key购买 nike

我什至不确定标题是否正确,如果不正确请见谅!

我有一个 MySQL 数据库,其中包含从多个接入点收集的 Wi-Fi 设备的详细信息。

下面我的 SELECT 语句返回 1 小时内找到的所有设备:

SELECT mac 
FROM TBLWiFi
GROUP BY
mac
HAVING COUNT( mac ) >1
AND TIMESTAMP >= DATE_SUB( NOW( ) , INTERVAL 1 HOUR )
)

结果是这样的:

╔═══════════════════╦══════════════════╦═════════════╗
║ mac ║ timestamp ║ reportedby ║
╠═══════════════════╬══════════════════╬═════════════╣
║ B0:02:94:1D:3B:43 ║ 21/03/2014 12:27 ║ AP-3c9b33d0 ║
║ C0:3E:0F:0F:2D:EB ║ 21/03/2014 12:37 ║ AP-3c9b33d0 ║
║ 64:70:02:29:16:AE ║ 21/03/2014 12:32 ║ AP-3c9b33d0 ║
║ B0:02:94:1D:3B:43 ║ 21/03/2014 12:46 ║ AP-5c9b33d0 ║
║ B4:F0:AB:C2:F6:92 ║ 21/03/2014 12:46 ║ AP-3c9b33d0 ║
║ 00:26:AB:F1:7C:EE ║ 21/03/2014 12:45 ║ AP-5c9b33d0 ║
║ B0:02:94:1D:3B:43 ║ 21/03/2014 12:45 ║ AP-4c9b33d0 ║
║ 1C:C1:DE:6A:90:47 ║ 21/03/2014 12:56 ║ AP-4c9b33d0 ║
║ B4:F0:AB:C2:F6:92 ║ 21/03/2014 13:02 ║ AP-3c9b33d0 ║
║ 00:26:AB:F1:7C:EE ║ 21/03/2014 13:07 ║ AP-4c9b33d0 ║
╚═══════════════════╩══════════════════╩═════════════╝

我现在要做的是从这个列表中找出哪些设备(mac)被多个接入点(reportedby)报告。

脑子里一片空白,脑子一片空白。任何帮助将不胜感激。

最佳答案

首先,您的查询应如下所示:

SELECT mac 
FROM TBLWiFi
WHERE TIMESTAMP >= DATE_SUB( NOW( ) , INTERVAL 1 HOUR )
GROUP BY mac
HAVING COUNT( mac ) > 1 ;

having 子句中,timestamp 的条件只比较每个 mac 的一个 timestamp。被比较的那个来自任意一行。

要获得多个访问点,请将 having 子句更改为:

HAVING COUNT(mac) > 1 and
COUNT(DISTINCT reportedby) > 1;

实际上,如果有不止一个reportedby,那么就有不止一行,所以这就足够了:

HAVING COUNT(DISTINCT reportedby) > 1;

关于MySQL 在选择中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22560646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com