【发布时间】:2021-03-21 18:19:15
【问题描述】:
我正在尝试从名为“reports”的 SQL 表中计算行数,按“working”排序为 0 / 1 / 2。
目前我有这个 SQL 查询,它可以给我三行,每行都有一个计数器,有多少“工作”为 0 / 1 / 2。
SELECT `working`, COUNT(`working`) AS `total` FROM `reports`
WHERE `appid` = 379720
GROUP BY `working`
ORDER BY `report_id` DESC LIMIT 30
所以它目前(正确地按照 SQL)给了我类似的东西:
| Working | Total |
|---|---|
| 0 | 12 |
| 1 | 34 |
| 2 | 18 |
我想要做的是,每个用户只计算 一个行,我无法完全理解。我不能在“author_id”字段上使用不同的选择,因为它最终被包含在内,我不能按它分组,因为我需要按工作 int 分组。
明确一点:我希望显示相同的结果,但每行中每个唯一的“author_id”只计算一个。
任何指针?
【问题讨论】:
-
请以表格文本的形式提供样本数据、当前和期望的结果。
-
如何为 MySQL 之类的东西提供示例数据?将结果添加为表格。
-
您可以以
create table和inserts语句或表格文本的形式共享您的数据。更重要的是,请向我们展示您想要的结果(作为表格文本)。您只显示了当前结果。 -
author_id 来自哪里?你想要的结果是什么样的?为什么每个用户计算一行然后谈论 author_id ?问题很乱,添加示例数据并期望输出作为问题的文本将有助于澄清。
-
ORDER BY report_id一定会导致错误,因为输出列表中没有这样的列。如果report_id是表的一列并且没有错误消息,则(1)ONLY_FULL_GROUP_BY被禁用(2)这种排序没有意义,它接近ORDER BY RAND()。
标签: mysql sql count distinct where-clause