当前位置:首页 » 编程语言 » sql创建分组统计
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql创建分组统计

发布时间: 2022-12-29 01:53:35

‘壹’ sql groupby分组多列统计

create table tests (year datetime year to year,type char(1),value int);

alter table tests alter colomn year int;

insert into tests values (2015,1,100);

insert into tests values (2015,2,200);

insert into tests values (2016,1,150);

insert into tests values (2016,2,300);

insert into tests values (2016,3,100);

YEAR    TYPE      VALUE

2015         1           100

2015           2           200

2016          1            150

2016           2             300

2016             3            100

转为:

YEAR    TYPE1    TYPE2    TYPE3

2015      100            200          0

2016         150           300        100

这时候我们除了用到GROUP BY之外还需要CASE WHEN,SQL如下:

SELECT year,

SUM(CASE WHEN type=1 THEN value ELSE 0 END) as type1,

SUM(CASE WHEN type=2 THEN value ELSE 0 END) as type2,

SUM(CASE WHEN type=3 THEN value ELSE 0 END) as type3,

FROM table_test GROUP BY year

十步理解SQL:http://blog.jobbole.com/55086/

‘贰’ sql语句 如何分组后得到记录总数

SELECT COUNT(*)

FROM (SELECT 分组字段 FROM 表

GROUP BY 分组字段

)别名


或者

SELECT COUNT(*)

FROM (SELECT distinct 分组字段 FROM 表)别名

(2)sql创建分组统计扩展阅读:

SQL分组查询

在SQL Server中使用的分组查询是ORDER BY子句,使用ORDER BY子句要同聚合函数配合使用才能完成分组查询,在SELECT查询的字段中如果字段没有使用聚合函数就必须出现在ORDER BY子句中(即SELECT后边的字段名要么出现在聚合函数中,要么在ORDER BY子句中使用)

在分组查询中还可以配合使用HAVING子句,定义查询条件。

使用group by进行分组查询

在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项:

1、被分组的列

2、为每个分组返回一个值得表达式,例如用一个列名作为参数的聚合函数

3、group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面

‘叁’ 如何使用SQL语句,实现多条件分组统计

搂主的
SQL
语句,有2点问题
其一.
ACCESS
不支持
CASE
WHEN
要使用
IIF
函数来替换
语法
IIf(expr,
truepart,
falsepart)
IIf
函数的语法包含以下参数
(参数:为操作、事件、方法、属性、函数或过程提供信息的值。):
参数
说明
expr
必选。要计算的表达式。
truepart
必选。expr

True
时返回的值或表达式。
falsepart
必选。expr

False
时返回的值或表达式。
其二.
count
使用的不正确,
应该修改为
sum
select
型号,count(
...
)
as
未报废数量
最后的SQL,
尝试修改为:
select
型号,
sum
(
iif
(
是否报废='否'
,
型号
,
0
)
)
as
未报废数量,
sum(
iif
(
是否借出='是',
型号,
0
)
)
as
已借出数量
from
a
group
by
型号
看看能否获得正确结果么?

‘肆’ sql中根据表中一个字段分组分别统计每个分组的记录数

分组统计可以参考以下操作:

当数组重复的时候分组才有意义,因为一个人也可以分为一组,只是没有意义而已,分组采用GROUP BY语句完成,语法如下:

‘伍’ 数据库中如何分类、分组并总计SQL数据

通常,我们确实需要对所有数据进行排序。SQL的ORDER BY子句将数据按字母或数字顺序进行排列。因此,同类数据明显分类到各个组中。然而,这些组只是分类的结果,它们并不是真正的组。ORDER BY显示每一个记录,而一个组可能代表多个记录。 2、减少组中的相似数据 分类与分组的最大不同在于:分类数据显示(任何限定标准内的)所有记录,而分组数据不显示这些记录。GROUP BY子句减少一个记录中的相似数据。例如,GROUP BY能够从重复那些值的源文件中返回一个唯一的邮政编码列表: SELECTZIP FROMCustomers GROUPBYZIP 仅包括那些在GROUP BY和SELECT列列表中字义组的列。换句话说,SELECT列表必须与GROUP列表相匹配。只有一种情况例外:SELECT列表能够包含聚合函数。(而GROUP BY不支持聚合函数。) 记住,GROUP BY不会对作为结果产生的组分类。要对组按字母或数字顺序排序,增加一个ORDER BY子句(#1)。另外,在GROUP BY子句中您不能引用一个有别名的域。组列必须在根本数据中,但它们不必出现在结果中。 3、分组前限定数据 您可以增加一个WHERE子句限定由GROUP BY分组的数据。例如,下面的语句仅返回肯塔基地区顾客的邮政编码列表。 SELECTZIP FROMCustomers WHEREState='KY' GROUPBYZIP 在GROUP BY子句求数据的值之前,WHERE对数据进行过滤,记住这一点很重要。

‘陆’ SQL 分组统计 同字段不同类型数据分别统计

这个意思?

selectsum(casewhenname1='1'thenmoneyelse0end)name1,
sum(casewhenname1='2'thenmoneyelse0end)name2,
sum(casewhenname1in('1','2')thenmoneyelse0end)money
fromtest1

不过你给的那结果不对吧?

‘柒’ sql分组统计

方法和详细的操作步骤如下:

1、第一步,创建一个测试表,详细代码见下图,转到下面的步骤。