【发布时间】:2020-06-21 01:42:18
【问题描述】:
我正在尝试做这样的事情。
signal_status signal_count
---------------|---------------
Average | 10
Good | 11
Very Poor | 4
Poor | 5
Below Average | 8
Excellent | 13
设备总数为 51,其计数应采用上面在 signal_count 中定义的方式。
我得到的是 signal_status (只有第一列)。现在我也想要计数,但无法根据设备获得计数。这是我试图获取第一列的查询。
select signal_status from (select case
when signal_info <= 31 and signal_info > 24 then 'Excellent'
when signal_info <= 24 and signal_info > 19 then 'Good'
when signal_info <= 19 and signal_info > 14 then 'Average'
when signal_info <= 14 and signal_info > 9 then 'Below Average'
when signal_info <= 9 and signal_info > 5 then 'Poor'
when signal_info <= 5 and signal_info > 0 then 'Very Poor' end
AS signal_status from data_channel) AS WTH group by signal_status;
我尝试了所有可能的方法,但无法获取所需的结果。
data_channel 表包含以下列:
sno (PK), device_id, signal_info, datetime
我希望它与 table_1 加入以加入 device_id。
table_1 包含以下列:
device_id (PK), device_name
基本上我想要做的是我希望所有设备的信号强度为平均好或差的设备的计数,但我得到的是表中的总记录,而不是基于最近的设备 signal_info。 如果不清楚,请原谅。
注意:使用 SQL Server 而不是 MySQL
【问题讨论】:
-
我这样做了,但那是根据设备 ID 返回未返回数据的总行数。使用计数与连接但从表中获取记录总数。
-
recent device signal_info是什么意思?您是否对同一设备有多个读数,而您只需要查看其中的最后一个吗?如果你能写下正确的需求,那么通常解决方案也会变得清晰。
标签: sql sql-server tsql select count