按月份分组,然后按用户id分组结果


group by months and then group results by user id

我需要计算员工的工资,这取决于每月添加的行数(具有唯一的picture_id,因此如果同一图片ID出现两次,则只计算一次)-因此我需要按picture_id和月份进行分组。

如果我单独做,也就是,效果非常好

group by MONTH(TimeAdded) 

GROUP BY picture_id

这是代码

$data_qqq = mysql_query("SELECT MONTHNAME(TimeAdded), COUNT(MONTH(TimeAdded)) FROM Picture_Tag WHERE UserID = $user_id GROUP BY MONTH(TimeAdded)");

但是即使存在具有相同CCD_ 3的20行,这也计算每个月添加的条目的数量。

现在,如果我尝试

$data_qqq = mysql_query("SELECT MONTHNAME(TimeAdded), COUNT(MONTH(TimeAdded)) FROM Picture_Tag WHERE UserID = $user_id GROUP BY MONTH(TimeAdded),**picture_id**");

我得到了一个非常奇怪的混乱的结果。。。

知道如何用唯一的picture_id计算每个月添加的行数吗?

如果没有样本,数据可能很难可视化,但如果您希望统计每个月唯一picture_id的数量,则使用COUNT(DISTINCT picture_id)。但也要注意,当按"月份"分组时,你可能还需要按年份分组,否则结果可能会严重失真。(或者使用where子句只选择您感兴趣的一年。)

试试这个:

SELECT
   YEAR(TimeAdded)
 , MONTH(TimeAdded)
 , COUNT(DISTINCT picture_id)
FROM Picture_Tag
WHERE UserID = $USER_ID
GROUP BY
   YEAR(TimeAdded)
 , MONTH(TimeAdded)