一句Sql把纵向表转为横向表,并分别分组求平均和总平均值
一句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

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











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.

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;

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.

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: 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.

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 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

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
