【问题标题】:SQL GROUP BY INNER JOIN AND COUNTSQL GROUP BY INNER JOIN 和 COUNT
【发布时间】:2021-04-01 20:23:57
【问题描述】:

我是 MySQL 新手。我在生成查询时遇到问题。

所以基本上我有两个表:device_master_data、device_logs。

device_master_data:

device_id device_seral_number

对于任何 device_id,都有一个唯一的 device_serial_number。

设备日志:

device_id log_date city_id

所以在这个表中,一个 device_id 有多个条目。

例如: device_id 1 有 5 个条目,device_id 2 有 10 个条目

目标: 从 device_logs 表中获取 TOP 20 最常出现的 device_id 然后获取device_id对应的device_serial_number。

结果:

count device_serial_number

请任何人提供帮助,这将非常有帮助

【问题讨论】:

标签: mysql sql group-by count inner-join


【解决方案1】:

使用这个

SELECT COUNT(dl.device_id) as count, dmd.device_serial_number
   FROM device_logs dl JOIN 
        device_master_data dmd 
        ON dl.device_id = dmd.device_id
GROUP BY d1.device_serial_number
ORDER BY count DESC
LIMIT 20;

【讨论】:

  • 我很确定您打算在 GROUP BY 中使用 device_serial_number。无论如何,update 使答案正确。
  • 感谢您的帮助,它工作正常。
【解决方案2】:

您可以按如下方式使用组:

Select m.device_id, m.device_serial_number, count(*) as cnt
  From device_master_data m join device_logs l on l.device_id = m.device_id
Group by m.device_id, m.device_serial_number
Order by count(*) desc
Limit 20

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 2019-03-21
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多