Ⅰ 数据库进行SQL分组查询后再过滤
你的表述我没看得太清, “根据type类型的不同” 统计是否忽略了city_id
最好 举个例子说内明一下期望的算容法
我根据你的表述,猜测你这里包含两层分组业务,
第一,根据city_id进行分组, 后用分组结果进行比较再次统计
如果你是10g或以上,可以试试以下语句
with grp1 as ( select sum(ws_succ)ssucc, sum(ws_stat) sstat ,city_id ,type
from tab_open_success_ratio
where ws_stat>0
group by city_id ,type)
select sum(ssucc)*100.00/sum(sstat),sum(sstat),type
from grp1
group by type
Ⅱ SQL order by分组后查询特定有特定条件的字段 的查询问题
最简单的办法,这两个查询出来的结果,再联合查询一次就行。
还有一个办法需要试试才行,我并不完全确定。
那就是女生人数那里用sum(case when gender='女' then 1 else 0 end)来做,我在oracle中用过类似的方式,不知道你的数据库这么操作行不行。
Ⅲ sql 查询语句中如何过滤指定的字符
1、语句:SELECT * FROM dbo.Procts WHERE prod_name='king doll' AND prod_price>8。
--检索dbo.Procts表中所有列,过滤条件为由供应商king doll制造价格大于8的所有商品。
注意:--后面的字符是这条语句的注释,这条语句有两个条件,分别用AND关键字联接在一起,并且过滤结果必须满足这两个条件,如果只满足其中一个该数据不会被检索出来。
2、OR操作符(或)
语句:SELECT * FROM dbo.Procts WHERE prod_name='king doll' OR prod_price>8。
--检索dbo.Procts表中所有列,过滤条件为由供应商king doll制造价格大于8的所有商品值。
注意:--这里要说明的是OR操作符与AND操作符的不同之处是只要满足其中一个条件,数值就会被检索出来,例如:由供应商king doll制造价格小于8商品或者由供应商king add制造价格大于8的商品只要其中一个条件符合,数据就被检索出来。
3、IN操作符(指定条件范围)
语句:SELECT * FROM dbo.Procts WHERE prod_name IN ('king doll' ,'Queen dool')。
--检索dbo.Procts表中所有列,过滤条件为由供应商king doll和Queen dool制造的商品。
注意:它的功能其实和OR一样,但是它的执行速度会更快并且简洁,最大的优点是可以包含其他SELECT语句,能够更动态地建立WHERE字句。
Ⅳ sql 多个字段分组 怎么过虑分组排名前100名
SQL
分组关键字
Group
by
在汇总,求和,等函数中可以出现多字段
假如定义一个表
A,表中有字段
a
nvarchar
类型,b
字段int
类型
select
a,sum(b)
as
b
from
A
group
by
a
上列SQL就是对一个字段分组,但是取多个字段数据
Ⅳ sql 如何过滤相同数据
楼主用distinct肯定达不到所需效果。
可以用group by 分组,不过因为其他字段有重复值,只能让其他字段取一个值了
sql="select test1,max(test2) as test2,max(test3) as test3,max(test4) as test4 from table1 group by test1"
Ⅵ sql查询 如何根据多个条件分组 筛选 需要的数据
SELECTMAX(id),驾校,身份证,姓名,类型,MAX(日期),CASEWHENMAX(状态)<>MIN(状态)
THEN'办结'ELSEMAX(状态)END
FROMTABLEGROUPBY驾校,身份证,姓名,类型
Ⅶ sql 某个字段中所包含的某个值分组
没看懂 你要的结果长什么样? 你分组要做哪项聚合?
Ⅷ 分组后再按条件过滤的sql怎么写
SELECT id, reportDate
FROM (SELECT id, reportDate,
ROW_NUMBER() OVER(PARTITION BY reportDate ORDER BY id) rk FROM tab) t
WHERE rk = 1
按照reportdate分组,每组只取reportdate对应的第一行记录内。容。。
Ⅸ SQL分组后的进一步过滤
要加一个from,修改不到。。。
SELECT id, reportDate
FROM (SELECT id, reportDate,
ROW_NUMBER() OVER(PARTITION BY reportDate ORDER BY id) rk FROM tab) t
WHERE rk = 1
这样肯定可以,按照reportdate分组,每组只取reportdate对应的第一行记录。。。
Ⅹ SQL 过滤字符字段值
select * from spk where isnumeric(spbh)=0
解释:
ISNUMERIC
确定表达式是否为一个有效的数字类型。
语法
ISNUMERIC ( expression )
参数
expression
要计算的表达式。
返回类型
int
注释
当输入表达式得数为一个有效的整数、浮点数、money 或 decimal 类型,那么 ISNUMERIC 返回 1;否则返回 0。返回值为 1 确保可以将 expression 转换为上述数字类型中的一种。