① 求sql语句查出一行数据中每列的百分比
1、若针对每行求百分比:
select SA/TotelTime ,SB/TotelTime ,SC/TotelTime ,SD/TotelTime ,SE/TotelTime from 表名
2、若是对总计后的值求百分比:
select sum(SA)/sum(TotelTime) ,sum(SB)/sum(TotelTime) ,sum(SC)/sum(TotelTime) ,sum(SD)/sum(TotelTime) ,sum(SE)/sum(TotelTime) from 表名
3、当然,以上都是以小数形式显示结果,若要以百分比形式显示结果:乘以100,并保留两位小数,然后加上“%”即可。
如:round((SA/TotelTime)*100,2) & "%"
② 求一个sql语句,查询某个值在数据集中的占比情况
写一个sql语句恐怕不行。
应当先写一段sql语句,计算出links字段的总和。
然后再写一段sql语句,以links字段的每一个值除以links字段的总和,这样就能得出links字段每个值在该字段总和里的占比。
这种情况下,就要写两端sql语句。
③ sql 查询某项比例
那超过50%的用户最多就只有一个?
selecta.商户名称
from
(select商户名称,count(*)count1from交易记录表where交易时间between'2014-01-01'and'2014-01-31'groupby商户名称)a,
(selectcount(*)count2from交易记录表where交易时间between'2014-01-01'and'2014-01-31')b
wherea.count1/b.count2>0.5
时间部分,你自己改写一下,我就随便写了个时间
④ 用SQL求百分比,同一列数据
select name,str((case (select isnull(sum(cost),0) from table1) when 0 then 0 else cost/(select isnull(sum(cost),0) from table1) end)*100,10,2)+'%' as bfb from table1
以上sql语句较长,解释一下:
使用case...when...end,是为了避免合计cost为0的话,出现无法除0的错误;结果值乘以100是为了配合百分比格式;使用str(...,10,2)函数是把计算出来的数字值转换成两位小数精度的文本串;最后,在结果后加上一个百分号,效果就完整了。
以上语句在sqlserver数据库中测试通过。
⑤ SQL统计每一列的数据要怎么写
首先确定你要统计的列名称,比如统计相同JOB的数量,格式为:
id job type
1 cleck a
2 cleck b
3 jone c
4 attont c
5 jone f
select id,type,count(*) 工作种类数量 from 表名 group by job,type;
id job type 工作种类数量
1 cleck a 2
2 cleck b 2
3 jone c 2
4 attont d 1
5 jone e 2
⑥ sql 怎么用一个语句求出同一列的某一个字段在整个列的百分比
可考虑使用窗口函数,计算各行某字段数值占整列的百分比:
selectratio_to_report(sal)over()fromemp;
网络你妹,我不修改了,最好把我回答删掉。
以上。
⑦ SQL语句选取某个区间的记录怎么编写
例如:写一个SQL语句,取出表S中第21~30记录(SQL server,以自动增长的ID作为主键,ID可能不连续)
方法一:
Select TOp10 * from S
Where ID>(Select MAX(ID) from (Select Top20 ID from S ) as S)
方法二:
select Top10 * from S where ID NOT IN(select Top20 ID from S)
(7)sql中如何书写一列数据各区间占比扩展阅读
SQL SELECT 语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
SQL SELECT 语法
SELECT 列名称 FROM 表名称
以及:
SELECT * FROM 表名称
注释:SQL 语句对大小写不敏感。SELECT 等效于 select。
SQL SELECT 实例:
如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:
SELECT LastName,FirstName FROM Persons
⑧ 用sql语句如何将两张表中的一列数据进行比对。
你好!
先获取不重复的ID,即x、y表的不重复并集,观察x、y表结构类似,通过union进行排重即可。
使用第一步获取的数据进行左链接x、y表的扩展表(第3步)。
分别对x、y表进行分组并合计,针对图片中y表中ID为A的记录出现多次,最后显示为ID为A的盘点数量为2,这样的数据进行处理,以方便最后显示。
通过(库存数-盘点数)得到比对字段值。
SELECT
t.ID,
IFNULL(t.`库存数量`,0)`库存数量`,
IFNULL(t.`盘点数量`,0)`盘点数量`,
(
IFNULL(t.`库存数量`,0)-IFNULL(t.`盘点数量`,0)
)`比对`
FROM
(
SELECT
a.IDID,
p1.`库存数量`,
p2.`盘点数量`
FROM
(
SELECT
ID
FROM
x
UNION
SELECT
ID
FROM
y
)a
LEFTJOIN(
SELECT
ID,
sum(`库存数量`)`库存数量`
FROM
x
GROUPBY
ID
)p1ONa.id=p1.id
LEFTJOIN(
SELECT
ID,
sum(`盘点数量`)`盘点数量`
FROM
y
GROUPBY
ID
)p2ONa.id=p2.id
)t
ORDERBY
ID
希望对你有帮助!
⑨ sql 求占比
select
t1.province,
cast(count(1)*100/(selectcount(1)fromprovince)asvarchar(10))+'%'
from
provincet1
groupby
t1.province