我需要计算雇员的工资,这取决于每月添加的行数(使用唯一的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)");
但这会计算每月添加的条目数,即使有20行具有相同的picture_id
。
现在,如果我尝试
$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
计算每个月添加的行数吗?
答案 0 :(得分:0)
如果没有样本,可能很难将数据可视化,但如果您希望每月计算唯一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)