按月份对生日结果进行分组

发布于 2024-11-01 01:58:58 字数 322 浏览 0 评论 0原文

我有一个用户列表及其生日。我需要打印每个月的生日列表并按天分组。例如:

24 日星期一 (2):Herpina Derpina、John Doe

27 日星期二 (1):Nicolas Cage

28 日星期五 (1):Michael Jackson

我怎样才能通过一个 SQL 调用来实现这一目标?如果我这样对它们进行分组,我将丢失记录:

SELECT COUNT(*) FROM user GROUP BY MONTH(birthday)

有什么想法吗? (我使用的是mysql+php)

I have a list of users and their birthdays. I need to print the list of birthdays for each month and grouped by day. For example:

Monday 24th (2): Herpina Derpina, John Doe

Tuesday 27th (1): Nicolas Cage

Friday 28th (1): Michael Jackson

How could I achieve that with one single SQL call? If I group them this way, I will lose records:

SELECT COUNT(*) FROM user GROUP BY MONTH(birthday)

Any ideas? (I'm using mysql + php)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

荒岛晴空 2024-11-08 01:58:58

您无法在同一个查询中获得作为聚合函数的计数和详细记录。如果名称是必需的,那么您将必须在 PHP 中手动构建计数,然后以所需的格式显示记录。

You can't get the count which is an aggregate function and the detailed records in the same query. If the names are essential then you will have to manually construct the counts in PHP and then display the records under the required format.

灼疼热情 2024-11-08 01:58:58
SELECT MONTH(birthday) month,
       FORMAT(birthday, '%W %D') day,
       COUNT(user) count,
       GROUP_CONCAT(user SEPARATOR ',') users
FROM table
GROUP BY MONTH(birthday), FORMAT(birthday, '%W %D')
SELECT MONTH(birthday) month,
       FORMAT(birthday, '%W %D') day,
       COUNT(user) count,
       GROUP_CONCAT(user SEPARATOR ',') users
FROM table
GROUP BY MONTH(birthday), FORMAT(birthday, '%W %D')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文