2014-01-17 191 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()) ;