Mysql 计数和分组
我正在尝试对数据库中的信息进行分组和计数 我有以下数据:Mysql 计数和分组,mysql,Mysql,我正在尝试对数据库中的信息进行分组和计数 我有以下数据: column_a | column_b ------------------- A | 1 A | 2 A | 2 B | 3 B | 3 A | 3 B | 3 column_a | column_b | a_total | b_total --------------------------------------- A
column_a | column_b
-------------------
A | 1
A | 2
A | 2
B | 3
B | 3
A | 3
B | 3
column_a | column_b | a_total | b_total
---------------------------------------
A | 3 | 4 | 1
A | 2 | 4 | 2
A | 1 | 4 | 1
B | 3 | 3 | 3
我希望数据创建一列,将与column\u a
的值匹配的行数计算到a\u total
中。然后我想将column_b
值分组为A类。然后,数据应按A_total
降序,然后按column_b降序输出
我想要这个输出:
column_a | column_b
-------------------
A | 1
A | 2
A | 2
B | 3
B | 3
A | 3
B | 3
column_a | column_b | a_total | b_total
---------------------------------------
A | 3 | 4 | 1
A | 2 | 4 | 2
A | 1 | 4 | 1
B | 3 | 3 | 3
到目前为止我得到了什么…
到目前为止,我已经选择了列a,列b,COUNT(*)作为b_总计,从这个表组中按列a,按列b顺序按列描述,b_total DESC
将列b
与正确的b_total
按顺序排列,但我不确定如何在同一查询中也将列a
的总计放入a_total
任何帮助都会很好
CREATE DATABASE test;
USE test;
CREATE TABLE t ( a VARCHAR(5), b INT );
INSERT t VALUE ('A', 1),('A', 2),('A', 2),('B', 3),('B', 3),('A', 3),('B', 3);
/*询问*/
SELECT xx.a , xx.b , yy.a_total , zz.b_total
FROM
(SELECT DISTINCT a, b FROM t) xx
INNER JOIN (SELECT COUNT(a) AS a_total, a FROM t GROUP BY a) yy
ON xx.a = yy.a
INNER JOIN (SELECT COUNT(a) AS b_total , a , b FROM t GROUP BY a, b) zz
ON (zz.a = xx.a AND zz.b = xx.b)
删除了PHP标记,与PHP无关。