目前我有一个查询计算依赖于国家/地区的记录数量,并给我一个类似的列表:
我现在已经添加了另一个语言coloumn,因为有些国家/地区有不同的语言,例如Switzerland_Italian。
修改我的查询的最佳方法是什么,如果国家/地区有不同的语言(有些人没有),它会在我的列表中单独计算,所以它看起来像:
这需要子查询吗?我现在的查询是,我已经添加了新的lang coloumn:
SELECT
COUNT(*) AS `count`,
`region`,
`lang`,
DATE(NOW()) AS `week_ending`
FROM
mydata.table
WHERE `date` > DATE_ADD(DATE(NOW()), INTERVAL - 1 WEEK)
AND `date` < DATE(NOW())
GROUP BY `region`,
DATE(NOW()) ;
答案 0 :(得分:1)
您必须同时使用GROUP BY区域和lang,如下所示:
SELECT COUNT(*) as `count`,`region`, `lang`, DATE(NOW()) as `week_ending`
FROM mydata.table
WHERE `date` > DATE_ADD(DATE(NOW()), INTERVAL -1 WEEK) AND `date` < DATE(NOW())
GROUP BY `region`, `lang`, DATE(NOW());
答案 1 :(得分:0)
这个怎么样
SELECT
COUNT(*) AS `count`,
CONCAT( `region`,'_',`lang`),
`region`,
`lang`,
DATE(NOW()) AS `week_ending`
FROM
mydata.table
WHERE `date` > DATE_ADD(DATE(NOW()), INTERVAL - 1 WEEK)
AND `date` < DATE(NOW())
GROUP BY `region`,`lang`,
DATE(NOW()) ;