Home Database Mysql Tutorial 一句Sql把纵向表转为横向表,并分别分组求平均和总平均值

一句Sql把纵向表转为横向表,并分别分组求平均和总平均值

Jun 07, 2016 pm 06:00 PM
average value

一句Sql把纵向表转为横向表,并分别分组求平均和总平均值,需要的朋友可以参考下。

效果如图所示:

测试sql语句如下:
代码如下:
declare @tab table(Class varchar(20),Student varchar(20),Course varchar(50),Quantity decimal(7,2));
insert into @tab(Class,Student,Course,Quantity) values('A班','张三','语文',60);
insert into @tab(Class,Student,Course,Quantity) values('A班','张三','数学',70);
insert into @tab(Class,Student,Course,Quantity) values('A班','张三','英语',80);
insert into @tab(Class,Student,Course,Quantity) values('A班','李四','语文',30);
insert into @tab(Class,Student,Course,Quantity) values('A班','李四','数学',40);
insert into @tab(Class,Student,Course,Quantity) values('A班','李四','英语',50);

insert into @tab(Class,Student,Course,Quantity) values('B班','王五','语文',65);
insert into @tab(Class,Student,Course,Quantity) values('B班','王五','数学',75);
insert into @tab(Class,Student,Course,Quantity) values('B班','王五','英语',85);
insert into @tab(Class,Student,Course,Quantity) values('B班','赵六','语文',35);
insert into @tab(Class,Student,Course,Quantity) values('B班','赵六','数学',45);
insert into @tab(Class,Student,Course,Quantity) values('B班','赵六','英语',55);



select * from @tab

select
(case when Grouping(Class)=1 then '总平均' when Grouping(Student)=1 then '' else Class end ) as Class
,(case when Grouping(Class)=1 then '' when Grouping(Student)=1 then '平均' else Student end) as Student
,avg(语文) as 语文
,avg(数学) as 数学
,avg(英语) as 英语
,avg(总分) as 总分
from (
select Class,Student
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student and Course='语文') as '语文'
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student and Course='数学') as '数学'
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student and Course='英语') as '英语'
,(select isnull(sum(Quantity),0) from @tab where Class=t.Class and Student=t.Student) as '总分'
from @tab as t
group by Class,Student
) as tempTab
group by Class,Student,语文,数学,英语,总分 with rollup
having Grouping(语文)=1
and Grouping(数学)=1
and Grouping(英语)=1
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1669
14
PHP Tutorial
1273
29
C# Tutorial
1256
24
What is the word formula for average? What is the word formula for average? Sep 19, 2023 pm 01:48 PM

The average word formula is "=AVERAGE(ABOVE)". Specific steps for calculating the average: 1. Open Word and create a new document; 2. In the document, enter the data you want to calculate the average, with each data occupying one row or column. For example, you can enter data in the first column; 3. In a blank cell below or to the right of the data, open the formula bar and enter the formula "=AVERAGE(ABOVE)"; 4. Press the Enter key and Word will Calculate and display the average value.

Mean square of natural numbers? Mean square of natural numbers? Sep 20, 2023 pm 10:29 PM

The average of the squares of natural numbers is calculated by adding all the squares of n natural numbers and then dividing by that number. The first two natural numbers in the example are 2.5, 12+22=5=>5/2=2.5. There are two methods of calculation in programming - Using loops Using formulas Calculating the average of squares of natural numbers using loops This logic works by finding the squares of all natural numbers. Find the square of each by looping from 1 to n and add to the sum variable. Then divide that sum by n. Program to calculate the sum of squares of natural numbers - sample code real-time demonstration #include<stdio.h>intmain(){ intn=2;

What are the functions for averaging arrays in php? What are the functions for averaging arrays in php? Jul 17, 2023 pm 04:03 PM

PHP array averaging functions include: 1. array_sum(), which is used to calculate the sum of all values ​​in the array. In order to calculate the average, you can add all the values ​​in the array and then divide by the number of array elements; 2 , array_reduce(), used to iterate the array and calculate each value with an initial value; 3. array_mean(), used to return the average of the array, first calculate the sum of the array, and calculate the number of array elements, then The sum is divided by the number of array elements to get the average.

Given an odd number, find the average of all odd numbers Given an odd number, find the average of all odd numbers Sep 03, 2023 pm 03:49 PM

The average of odd numbers up to a given odd number is a simple concept. You just need to find the odd numbers up to that number, then add them and divide by that number. If you want to find the average of odd numbers up to n. Then we will find the odd numbers from 1 to n and add them together and divide by the number of odd numbers. Example The average of odd numbers up to 9 is 5, i.e. 1+3+5+7+9=25=>25/5=5 There are two ways to calculate the average of odd numbers up to n, where n is an odd number using a loop using the formula Program to find the average of odd numbers up to n, using a loop. To find the average of odd numbers up to n, we will add all the numbers up to n and divide by the number of odd numbers up to n. Program to calculate average of odd natural numbers up to n - example code

How to find the average of a one-dimensional array in php How to find the average of a one-dimensional array in php Dec 26, 2022 am 10:20 AM

How to find the average of a one-dimensional array in PHP: 1. Create a new PHP file; 2. Create an array; 3. Use the array_sum function to sum the elements in the array; 4. Use the count function to calculate the number of array elements. Then divide the two numbers to find the average.

What is the average of all even numbers preceding a given even number? What is the average of all even numbers preceding a given even number? Aug 25, 2023 pm 11:53 PM

To find the average of the even numbers before a given even number, we will add up all the even numbers before a given number and then count the number of even numbers. Then divide the sum by the number of even numbers. Example The average of even numbers up to 10 is 6 i.e. 2+4+6+8+10=30=>30/5=6 There are two ways to calculate the average of even numbers up to n i.e. even numbers. Program to calculate the average of even numbers up to n using formula using loop Using loop To calculate the average of even numbers up to n, we will add all the even numbers up to n and then divide by the number of even numbers up to n. Calculate the average of even natural numbers up to n - Sample code Live demonstration #include<stdio.h>intm

How to calculate the average of a certain field using the AVG function in MySQL How to calculate the average of a certain field using the AVG function in MySQL Jul 12, 2023 pm 03:28 PM

How to calculate the average of a certain field using the AVG function in MySQL In database management systems, processing data is a very common task. Calculating the average of a field is one of the common requirements. MySQL provides the AVG function, which can help us calculate the average easily. This article will introduce how to use the AVG function in MySQL, as well as related code examples. First, we need to make sure that the MySQL database is installed and configured. If it is not installed yet, you can download it from the MySQL official website and

Compute the subarray of length K whose mean exceeds the median of the given array Compute the subarray of length K whose mean exceeds the median of the given array Sep 02, 2023 am 08:09 AM

The expression "subarray of length K" applies to a contiguous subarray with exactly K elements. Mastering and using subarrays is essential for solving a variety of problems in areas such as dynamic programming, computational geometry, and data analysis. Another important concept in array operations and statistics is the median. The median of an array represents the value in the middle when the elements are sorted in ascending order. When there is an even number of elements, the median is the average of the two central values. The median constitutes a persistent measure of central tendency because it is less susceptible to extreme values ​​or outliers than the mean. This paper attempts to study the challenge of determining the number of K-length subarrays in a given array whose mean exceeds the median. We can delve deeper into this by understanding the relationship between the mean and median of a data set

See all articles