Php mysql中的多重分组/排序
我有一个包含三个字段的表:用户名、postName、post。如何先按postName分组,然后按用户名分组。例如,我的表中有4行:Php mysql中的多重分组/排序,php,mysql,database,Php,Mysql,Database,我有一个包含三个字段的表:用户名、postName、post。如何先按postName分组,然后按用户名分组。例如,我的表中有4行: username1,conval1,我的第一篇帖子 username1,conval1,我的第二篇文章 username2,conval1,我的第一篇帖子 username3,Corpa2,我的第一篇帖子 如何将conval1分组(总计数为3),然后将用户名分组(由于第1行和第2行具有相同的用户名,因此计数变为2)。有没有一种方法可以通过一个查询来实现这一点?下面
如何将conval1分组(总计数为3),然后将用户名分组(由于第1行和第2行具有相同的用户名,因此计数变为2)。有没有一种方法可以通过一个查询来实现这一点?下面的查询应该可以做到这一点。(当然,用whateverTableName代替。) 样本输出:
postName uniqueUsers
-------- -----------
Convo1 2
Convo2 1
相同的解决方案,但作为一对视图,用于不喜欢使用复杂查询的框架:
CREATE VIEW convo_by_user_post
AS
SELECT username, postName, count(*)
FROM whateverTableName
GROUP BY username, postName;
CREATE VIEW convo_unique_users
AS
SELECT postName, count(*) uniqueUsers
FROM convo_by_user_post
GROUP BY postName;
然后从您的应用程序:
SELECT postName, uniqueUsers FROM convo_unique_users
您是否尝试过
选择。。。按postName、username分组?编辑您的问题并提供您想要获得的结果的更多详细信息。所需的输出是什么?(PrameName,用户名,计数)?你碰巧知道PHPZED框架语法吗?如果这个查询不容易在你的框架(ZEnter)中完成,考虑把这个查询保存在数据库中作为一个视图,那么你的应用程序侧代码只是从那个视图中的一个简单的选择。
SELECT postName, uniqueUsers FROM convo_unique_users