我需要计算员工的工资,这取决于每月添加的行数(具有唯一的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)