Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL-多计数状态_Mysql_Pivot_Aggregate Functions - Fatal编程技术网

MYSQL-多计数状态

MYSQL-多计数状态,mysql,pivot,aggregate-functions,Mysql,Pivot,Aggregate Functions,我试图在demographioc表上进行查找,以显示一些统计数据。然而,由于我们的人口统计表很大,我想在一个查询中完成它 有两个重要字段:性别、上次登录 我希望能够获得不同日期范围的总登录次数(您希望使用。选择性别, 总和(如果(DATEDIFF(NOW(),上次登录)

我试图在demographioc表上进行查找,以显示一些统计数据。然而,由于我们的人口统计表很大,我想在一个查询中完成它

有两个重要字段:性别、上次登录

我希望能够获得不同日期范围的总登录次数(您希望使用。

选择性别,
总和(如果(DATEDIFF(NOW(),上次登录)<1,1,0)),
总和(如果(DATEDIFF(NOW(),最后一次登录)介于1和7,1,0之间),
总和(如果(DATEDIFF(NOW(),最后一次登录)介于7和30,1,0之间))
从玩家帐户演示
按性别分组

pivot表用于显示,对吗?我希望能够在一个查询中选择所有内容,而不必选择整个表并在php中执行所有操作。这不是查询语言支持的概念。如果确实需要,可以在
select
语句中逐个检查(例如,请参见Wrikken的回答)。
PIVOT
UNPIVOT
我相信是ANSI,但仅在SQL Server 2005+和Oracle 11g+上受支持。在这方面,ANSI-92就是一个例子……根据OP的标签,他的问题是关于mySQL,据我所知,mySQL没有实现任何PIVOT表功能。
SELECT sex, count(*) peeps 
  FROM player_account_demo 
 WHERE last_demo_update > 1275868800 
GROUP BY sex
sex       peeps
----------------
UNKNOWN   22
MALE      43
FEMALE    86
sex       peeps<1day      peeps1-7days       peeps7-30days
SELECT sex,
  SUM(IF(DATEDIFF(NOW(),last_login) < 1,1,0)),
  SUM(IF(DATEDIFF(NOW(),last_login) BETWEEN 1 AND 7,1,0)),
  SUM(IF(DATEDIFF(NOW(),last_login) BETWEEN 7 AND 30,1,0))
FROM player_account_demo 
GROUP BY sex