2014-01-17 145 views
0

目前我有一个计算的依赖于国家的记录数,并给了我一个列表类似的查询:MySQL过滤器查询?

  • 英国= 400
  • 西班牙= 350
  • 等...

因为有些国家有不同的语言,所以现在我已经添加了另一种语言,例如Switzerland_Italian。

什么是修改我的查询,以便如果国家有不同的语言(如一些不)会seperately我的列表中算这些的最佳途径,所以它看起来是这样的:

  • 英国= 400
  • 西班牙= 350
  • 瑞士= 200
  • Switzerland_Italian = 50

请问这种需求的子查询?在目前的查询我所拥有的,我已经在新朗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()) ; 

回答

1

你将不得不GROUP BY都区和浪,就像这样:

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()); 
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()) ;