栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

按MySQL中的前N个分组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

按MySQL中的前N个分组

我刚刚尝试了一个与@Charles
Bretana给出的查询非常相似的查询,它确实起作用。我使用了VIEW来帮助澄清问题。

CREATE TABLE my_data ( my_date DATE, ip_address CHAr(15));

插入一堆日期/ IP地址对(未显示)…

为每月所有计数和IP地址创建一个视图:

CREATE VIEW my_data_per_month as SELECt EXTRACT(YEAR_MonTH FROM my_date) AS month,   ip_address, COUNT(*) AS hits FROM my_data GROUP BY month, ip_address;SELECt * FROM my_data_per_monthORDER BY month ASC, hits DESC;+--------+-----------------+------+| month  | ip_address      | hits |+--------+-----------------+------+| 200901 | 999.999.999.999 |    8 | | 200901 | 999.999.999.998 |    6 | | 200901 | 999.999.999.997 |    5 | | 200901 | 999.999.999.996 |    4 | | 200901 | 999.999.999.995 |    3 | | 200901 | 999.999.999.994 |    2 | | 200902 | 999.999.999.998 |    8 | | 200902 | 999.999.999.997 |    6 | | 200902 | 999.999.999.996 |    5 | | 200902 | 999.999.999.995 |    4 | | 200902 | 999.999.999.994 |    3 | | 200902 | 999.999.999.993 |    2 | | 200903 | 999.999.999.997 |    8 | | 200903 | 999.999.999.996 |    6 | | 200903 | 999.999.999.995 |    5 | | 200903 | 999.999.999.994 |    4 | | 200903 | 999.999.999.993 |    3 | | 200903 | 999.999.999.992 |    2 | +--------+-----------------+------+

现在显示每月前三个IP地址:

SELECt m1.month, m1.ip_address, m1.hitsFROM my_data_per_month m1LEFT OUTER JOIN my_data_per_month m2  ON (m1.month = m2.month AND m1.hits < m2.hits)GROUP BY m1.month, m1.ip_addressHAVINg COUNT(*) < 3ORDER BY m1.month ASC, m1.hits DESC;+--------+-----------------+------+| month  | ip_address      | hits |+--------+-----------------+------+| 200901 | 999.999.999.999 |    8 | | 200901 | 999.999.999.998 |    6 | | 200901 | 999.999.999.997 |    5 | | 200902 | 999.999.999.998 |    8 | | 200902 | 999.999.999.997 |    6 | | 200902 | 999.999.999.996 |    5 | | 200903 | 999.999.999.997 |    8 | | 200903 | 999.999.999.996 |    6 | | 200903 | 999.999.999.995 |    5 | +--------+-----------------+------+


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517563.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号