sql计算百分比函数convert,求助:sql如何在查询记录后把某一列的sum汇总显示显示在每一行并统计出每一行的百分比。不好意思分不够了
sql计算百分比函数convert,求助:sql如何在查询记录后把某一列的sum汇总显示显示在每一行并统计出每一行的百分比。不好意思分不够了详细介绍
本文目录一览: sql中如何计算百分比 并保留两位小数
select convert(decimal(18,2),除数*1.0/被除数)*100 as 百分比 from 表名
decimal(18,2)表示取两位小数
求助:sql如何在查询记录后把某一列的sum汇总显示显示在每一行并统计出每一行的百分比。不好意思分不够了
--1.建表
CREATE TABLE emp
(
id INT ,
product NVARCHAR(10),
quantity INT
)
--2.插入数据
INSERT INTO emp VALUES(1, 'P1', 1)
INSERT INTO emp VALUES(2, 'P2', 2)
INSERT INTO emp VALUES(3, 'P3', 3)
--3.1查询(SQL2005+)
SELECT *,SUM(quantity) OVER() AS 总数,CONVERT(NVARCHAR(10),CONVERT(NUMERIC(18,2),100.0*quantity/SUM(quantity) OVER()))+'%' AS 占比 FROM emp
--3.2
SELECT *,(SELECT SUM(quantity) FROM emp) AS 总数,CONVERT(NVARCHAR(10),CONVERT(NUMERIC(18,2),100.0*quantity/(SELECT SUM(quantity) FROM emp)))+'%' AS 占比 FROM emp
--3.3
SELECT *,CONVERT(NVARCHAR(10),CONVERT(NUMERIC(18,2),100.0*quantity/总数))+'%' AS 占比 FROM
(
SELECT *,(SELECT SUM(quantity) FROM emp) AS 总数 FROM emp
) S
求一条SQL计算百分比的语句,谢谢好心人! 就是让每个牌子的数量除以所有手机的总和
select 存货分类,手机品牌,数量,
case when 数量<>0 then convert(varchar,cast(数量 *1.0/
(select sum(数量) from 表名)*100 as numeric(18,1)))+'%' else '0' end as 百分比
from 表名
试试看
select 手机品牌,数量, Convert(varchar,Convert(int,convert(float,数量,2)/10*100))+'%' as 百分比 from 表
这样写就行了!
select 手机品牌,sum(数量),sum(数量)/总数量 from 表 a,(select sum(数量) 总数量 from 表) group by 手机品牌
这样写看看,能行的,我测试过的:
结果为:
OPPO 60 66.67%
诺基亚 10 11.11%
三星 20 22.22%
【
SELECT A.手机品牌,A.数量,CONVERT(VARCHAR(8),CONVERT(DECIMAL(8,2),A.数量*1.0/B.SUM_数量*100))+'%'
FROM
(SELECT 手机品牌,SUM(数量) AS 数量 FROM BAIDU_224 GROUP BY 手机品牌) AS A,
(SELECT SUM(数量) AS SUM_数量 FROM BAIDU_224) AS B
】
SQL 求两个字段的百分比 怎么写?
结果如下:
round((SA/TotelTime)*100,2) & "%"
select mz as '民族',count(*) as '人数',SUBSTRING (convert(varchar (20),
(count(*)/80.00*100) ),1,4)+'%' as '比例' from ryxx group by mz
结构化查询语言(Structured Query Language)简称SQL(发音:/?es kju? ?el/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
sql求百分比,根据jlh 求money字段占moeny字段的总和
select a.id,a.money,a.jlh, a.money/b.sumMoney as pct
from tablename a
(select jlh, sum(money) as sumMoney from table name group by jlh) b
where a.jlh=b.jlh
select money1/money2||'%' from
(select id as is,sum(money) as money1,0 as jlh,0 as money2 from talbe group by id
union all
select 0 as id,0 as money1,jlh as jlh,sum(money) as money2 from talbe group by jlh)
create table tab
(
id int identity(1,1) primary key,
[money] decimal,
jih int
)
go
insert into tab([money],jih) values(500,1)
insert into tab([money],jih) values(300,1)
insert into tab([money],jih) values(300,2)
insert into tab([money],jih) values(500,2)
insert into tab([money],jih) values(600,3)
insert into tab([money],jih) values(900,3)
insert into tab([money],jih) values(400,4)
insert into tab([money],jih) values(800,4)
go
select * from tab
go
select tab.id,tab.money,tabb.total,tab.money,
substring(
convert(varchar(100), round((tab.money/tabb.total),2)),1,4
)
as [avg],
tab.jih
from tab inner join
(select jih,sum([money]) total from tab group by(jih)) tabb
on tab.jih = tabb.jih
运行上面代码即可得到结果
sql查询结果如何以百分比形式输出?
sql查询结果以百分比形式输出的步骤如下:
我们需要准备的材料分别是:电脑、sql查询器。
1、首先,打开sql查询器,连接上需要查询的数据表,以test表的score字段为例。
2、点击“查询”按钮,输入:select `name`, concat(truncate(score * 100,2),'%') as score from test;。
3、点击“运行”按钮,此时score字段的查询结果就能以百分比的形式显示。
1、sql查询结果如何以百分比形式输出
举例:比如共500份,卖出20份,求卖出百分比数
MySql语法:
SELECT CONCAT(ROUND(20/500*100,2),'%');
2、sql数据库介绍:
(1)sql是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。
(2)在使用它时,只需要发出"做什么"的命令,"怎么做"是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
(3)参考资料:
a.SQL(Structured Query Language)结构化查询语言 . 网学 . 2013-03-04
b.功能齐全 SQL数据库就选世纪远扬 . 哈尔滨工程大学国家大学科技园 . 2013-03-04
c.夜间备份要优先考虑SQL数据库 . TechTarget存储 . 2015-06-24
d.sql数据库入门学习总结 . 数据中心 . 2014-04-08
以百分比形式输出sql查询结果的步骤如下:要准备的材料是:computer,sql querier。
1.首先,打开sql查询器并连接到需要查询的数据表。以测试表的得分字段为例。
2.单击“查询”按钮并键入:选择`name`,concat(truncate(score * 100,2),'%')作为test的分数。
3.单击“运行”按钮。此时,得分字段的查询结果可以显示为百分比。
SQL分组统计求百分比
SELECT
区
,CONVERT(DECIMAL(15,3),SUM(CASE 及格WHEN 'Y' THEN 1 ELSE 0 END))/COUNT(1)*100
FROM
表
GROUP BY
区
-------------输出结果-------------
A 100.00000000000000
B 33.33333333333300
C 50.00000000000000
SELECT
区,
CAST ( 100 * SUM( CASE WHEN 及格='Y' THEN 1 ELSE 0 END ) / COUNT(*) as VARCHAR) + '%' AS 及格率
FROM
表
GROUP BY
区
用SQL求百分比,同一列数据
SELECT
(T2/T1.cost)/100 || ‘%’
FROM
(SELECT SUM(cost) As cost from table1) T1,
(SELECT SUM(cost)AS cost from table1
WHERE name = '张三') T2
select aaa.name,aaa.cost_s/bbb.cost_t 比例 from
(select name,cast (sum(cost) as float) cost_s from T group by name) aaa,
(select cast(sum(cost) as float) cost_t from T)
bbb
--where name='张三'
这里是所有人的统计 结果是小数 没有加百分号
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语句怎么计算 百分比 的数值呢? 求代码!
如果是透过一个 1000条数据, 通过一个 VIP_FLAG 这样的字段,来区分是否是 VIP 的。
SELECT
100 * SUM( CASE WHEN VIP_FLAG = 1 THEN 1 ELSE 0 END ) / COUNT(1)
FROM
表
--建立测试表 testTable
create table testTable(id int identity(1,1),type nvarchar(8))
go
--循环插入测试语句
declare @a int
set @a=0
while (@a<100)
begin
if @a<80
insert into testTable(type)values('会员')
else
insert into testTable(type)values('vip')
set @a=@a+1
end
go
--查看插入表中的所有数据
select * from testTable
--查看你要看的的数据
select b.sumb%a.suma '会员占总人数的百分比(%)'
from(select COUNT(*) suma from testTable) a,
(select COUNT(*) sumb from testTable where type='会员') b
select b.sumb%a.suma 'vip占总人数的百分比(%)'
from(select COUNT(*) suma from testTable) a,
(select COUNT(*) sumb from testTable where type='vip') b
select b.sumb%a.suma '会员占总人数的百分比(%)',c.sumc%a.suma'vip占总人数的百分比(%)'
from(select COUNT(*) suma from testTable) a,
(select COUNT(*) sumb from testTable where type='会员') b,
(select COUNT(*) sumc from testTable where type='vip') c
--查看完删除测试表 testTable
drop table testTable
结果我已经看过了,如下图: