当前位置:首页 » 编程语言 » sql条件分组

sql条件分组

发布时间: 2023-08-20 16:45:40

A. sql多条件分组查询,求sql语句。

分组是用来聚集汇总的,如求平均、求总和、求最大等
你这个不需要分组,直接排序就可以了

selectname,datefromtableorderbynameasc,datedesc

如果每组要按date的降序排列,也挺简单

with t1 as (select name, max(date) md from table group by name,

t2 as (select table.name name, table.date date, t1.md from table join t1 on table.name=t1.name

order by t1.md)

select name,date from t2

B. SQL对取值范围进行分组汇总的几种办法

可以用到自定义函数,
create or replace FUNCTION g2(v NUMBER) RETURN INT IS
TYPE it IS TABLE OF INT;
BEGIN
IF v>0 AND v<= 500 THEN
RETURN 1;
ELSIF v>500 AND v<= 1000 THEN
RETURN 2;
ELSIF v>1000 AND v<= 5000 THEN
RETURN 3;
ELSIF v>5000 AND v<= 20000 THEN
RETURN 4;
ELSE
RETURN 0;
END IF;
END g2;
/
select g2(id) f, count(1) cnt from t1 group by g2(id) order by 1;
F CNT
---------- ----------
1 500
2 500
3 4000
4 15000

当然,我们也可以不借助函数,而用case when语句实现同样的条件分组,但是语句比较冗长,列名是固定的。不利于阅读与修改,也不利于代码重用。
select (case
when id >0 AND id<= 500 THEN 1
when id >500 AND id<= 1000 THEN 2
when id >1000 AND id<= 5000 THEN 3
when id >5000 AND id<= 20000 THEN 4
else 0
end) f,
count(1) cnt from t1 group by
(case
when id >0 AND id<= 500 THEN 1
when id >500 AND id<= 1000 THEN 2
when id >1000 AND id<= 5000 THEN 3
when id >5000 AND id<= 20000 THEN 4
else 0
end)
order by 1;
F CNT
---------- ----------
1 500
2 500
3 4000
4 15000

C. sql多条件分组查询,求sql语句。

sql多条件分组查询举例:
比如有两张表:
表一:
姓名 分数
——————
李一 2
李二 1
李三 1
张一 3
张二 2
张三 2
……

表二:


——



要查询表二中的姓的数据对表一进行分组,然后将分数统计出来。

sql语句写法如下:
SELECT
b. NAME,
sum(a.score) AS 分数
FROM
tb1 a
LEFT JOIN tb2 b ON SUBSTR(a.name FROM 1 FOR 1)= b.`name`
GROUP BY
b. NAME;

这个是Mysql的写法 Oracle把SubStr函数改一下就可以了。

D. SQL语句中,如何根据条件分组

首先,使用下面语句:
select date, count(date) cnt from user where date is not null group by date
结果:
date cnt
1月 2
2月 2
3月 1

在上面语句基础上改进,使之与要求结果一致:
select max(case when date = '1月' then cnt else 0 end ) 1月,
max(case when date = '2月' then cnt else 0 end ) 2月,
max(case when date = '3月' then cnt else 0 end ) 3月
from (select date, count(date) cnt from user where date is not null group by date)

E. SQL对查询结果进行分组(sql分组查询)

1.打开plsql并转到登录页面。

2.以管启胡搭理员身份登录数据库

3.登录后,创建一个新的SQL窗口。

4,输入,以下语做游句选择a.file#,a.name,a.bytes/1024/1024CurrentMB,ceilHWM*a.block_size/1024/,a.bytes-HWM*a.block_size/1024/1024releaseMB;

5.单击“执行”按钮以执行查询操作。

6,查询后,可以悄拿在查询结果中看到每个数据库文件的具体路径。

热点内容
sql语句on 发布:2025-02-05 07:41:42 浏览:596
取消电脑密码怎么设置8 发布:2025-02-05 07:24:16 浏览:393
洗脑编程 发布:2025-02-05 07:23:52 浏览:948
osd加密 发布:2025-02-05 07:17:39 浏览:36
微信游戏源码下载 发布:2025-02-05 07:17:29 浏览:384
计算机内存储器是 发布:2025-02-05 07:13:35 浏览:144
classpathlinux 发布:2025-02-05 07:12:57 浏览:564
linuxftp连接失败 发布:2025-02-05 07:01:40 浏览:705
学生信息管理系统java 发布:2025-02-05 06:58:45 浏览:576
刺客信条4解压后 发布:2025-02-05 06:55:23 浏览:901