MySQL过滤查询?

标签 mysql sql

目前我有一个查询,它计算取决于国家/地区的记录数量,并给我一个类似以下的列表:

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

我现在添加了另一列语言,因为有些国家/地区有不同的语言,例如瑞士_意大利语。

修改我的查询的最佳方法是什么,以便如果该国家/地区有不同的语言(有些国家没有),它将在我的列表中单独计算这些语言,因此它看起来像:

  • 英国 = 400
  • 西类牙 = 350
  • 瑞士 = 200
  • 瑞士_意大利语 = 50

这需要子查询吗?我目前的查询是,我已在新的 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`,
  DATE(NOW()) ;

最佳答案

您必须按区域和语言进行分组,如下所示:

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

关于MySQL过滤查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21182321/

相关文章:

PHP - 在指定时间禁用按钮

MySQL:选择按字符数排序的行

c# - MSSQL中子字符串的更新操作

sql - 右子串语句 SQL

sql - 更新与一项相关的 n 项的最佳方法是什么?

mysql - php/mysql用户管理

mysql - 从一列获取 MAX 值,从另一列获取 MIN

Php Mysqli 持久连接错误

mysql - 通过连接四列来更新 mysql 表

php - 如果发生错误,如何返回 SQL 查询?