用集合来介绍mysql高级查询

1 group_concat

MySQL >选择student_name,
-> group_concat(test_score)
从学生
组-> student_name;

或:

MySQL >选择student_name,
(不同group_concat test_score ->
为了test_score DESC分离器- >)
从学生
组-> student_name;

在MySQL,你可以得到表达式的组合连接的价值。你可以使用不同的删除重复值。如果你想多结果进行排序,你应该使用的条款顺序。如果你想在相反的顺序,添加描述(递减)的列名称,你想用ORDERBY子句排序关键字。默认为升序;您可以明确地指定它与asc.separator如下一个字符串值,在价值中应插入结果。默认是逗号(',')。通过指定分隔符,您可以删除所有分离器。

PS:结合各子值的物品,可聚合的集团在一份声明中的价值

2汇总

GROUPBY子句可以被添加到与ROLLUP修饰符在简短的输出端附加的线。这些线代表高水平(或聚集)简单的operation.rollup因此可以回答关于在多角度分析问题

或者你可以使用汇总,可提供双水平分析一个问题。添加的语句组汇总修改使得查询产生另一个结果,这说明所有的年总价值:

MySQL >选择年总和(利润)从销售团队的年度汇总;

------ ------------- + + +

| |年总和(利润)|

------ ------------- + + +

| 2000 | 4525 |

| 2001 | 3010 |

|空| 7535 |

------ ------------- + + +

总高度为年栏空标记。

当有多个组列,卷起的效应更为复杂。在这个时候,每一次打破(价值变化)显得比其他任何一列列列,查询产生的高聚集、累积行。

例如,在汇总的情况下,一个销售表的基础上,列出的国家,和产品可能如下所示:

选择年份、国家、产品、金额(利润)

从-销售

按年份>集团、国家、产品;

+ + + + ------ --------- ------------ ------------- +

年国家产品| | | |总和(利润)|

+ + + + ------ --------- ------------ ------------- +

| 2000 |芬兰|计算机| 1500 |

| 2000 |芬兰|电话| 100 |

| 2000 |印度|计算器| 150 |

| 2000 |印度|计算机| 1200 |

| 2000 |美国|计算器| 75 |

| 2000 |美国|计算机| 1500 |

| 2001 |芬兰|电话| 10 |

| 2001 |美国|计算器| 50 |

| 2001 |美国|计算机| 2700 |

| 2001 |美国|电视| 250 |

+ + + + ------ --------- ------------ ------------- +

总价值的输出结果只在年度/国家/产品分析水平。当汇总添加,查询产生一些额外的线:

选择年份、国家、产品、金额(利润)

从-销售

年->集团、国产品汇总;

+ + + + ------ --------- ------------ ------------- +

年国家产品| | | |总和(利润)|

+ + + + ------ --------- ------------ ------------- +

| 2000 |芬兰|计算机| 1500 |

| 2000 |芬兰|电话| 100 |

| 2000 |芬兰|空| 1600 |

| 2000 |印度|计算器| 150 |

| 2000 |印度|计算机| 1200 |

| 2000 |印度|空| 1350 |

| 2000 |美国|计算器| 75 |

| 2000 |美国|计算机| 1500 |

| 2000 |美国|空| 1575 |

| 2000 |空|空| 4525 |

| 2001 |芬兰|电话| 10 |

| 2001 |芬兰|空| 10 |

| 2001 |美国|计算器| 50 |

| 2001 |美国|计算机| 2700 |

| 2001 |美国|电视| 250 |

| 2001 |美国|空| 3000 |

| 2001 |空|空| 3010 |

空空空| | | | 7535 |

+ + + + ------ --------- ------------ ------------- +

当你使用汇总,你不能排序结果与ORDERBY子句同时。换句话说,汇总和秩序是相互排斥的。但是,你仍然可以在一种控制。在MySQL,集团可排序的结果,你可以在列表中指定的组列表中使用显式的ASC和DESC关键字,以便排序单个列。(不管如何向更高层次的总线,通过汇总,添加排序行仍出现后,他们已计算出的线)。

限制可以被用来限制返回的行数的client.limit用于后面的汇总,所以这个限制将取消,由汇总添加线条