日期:2014-05-17 浏览次数:20751 次
select count(*) from info_person where work_year =“+work_year +”
------解决方案--------------------
写到存储过程中吧,先获得sum值,然后select xxx / sum值
------解决方案--------------------
还是写个存储过程比较好,把所有的工作年龄遍历一遍
------解决方案--------------------
Select work_year AS 工作年限,Count(work_year) AS 数量,(Count(work_year)/Count(*)) AS 占比 from info_person GROUP BY work_year
------解决方案--------------------
select work_year,count(*),count(*)*1./num from
(select *,count(*)over() from info_person) t group by work_year,num
------解决方案--------------------
Select work_year AS 工作年限,Count(work_year) AS 数量,(Count(work_year)/Count(*)) AS 占比 from info_person GROUP BY work_year
------解决方案--------------------
你这num是什么,根本不识别。
select work_year,count(work_year) as nmber, (COUNT(work_year)/(select COUNT(*) from info_person )) as rate from info_person ip
group by work_year
比率怎么算啊
------解决方案--------------------
Select work_year,Count(work_year) AS Quantity,STR(Convert(Decimal(10,2),(Count(work_year)*100.0/(Select Count(person_id) from info_person))),10,2)+'%' AS Proprotion from info_person Group by work_year
------解决方案--------------------
CREATE TABLE WBT
(
person_id int,
work_year int
)
INSERT INTO WBT
SELECT 2110020,5 UNION ALL
SELECT 2112274,6 UNION ALL
SELECT 2113775,7 UNION ALL
SELECT 2113841,8 UNION ALL
SELECT 2114508,9 UNION ALL
SELECT 2114870,10 UNION ALL
SELECT 2115337,11 UNION ALL
SELECT 2115408,7 UNION ALL
SELECT 2115431,5 UNION ALL
SELECT 2115610,6
select work_year as 工作年限 ,count(*) as 数量,convert(nvarchar(10),convert(decimal(18,2),count(*)*100.00/rowno))+'%' as 所占比例 from
(select *,count(*)over() rowno from WBT) t group by work_year,rowno
/*
工作年限 数量 所占比例
----------- ----------- -----------
5 2 20.00%
6 2 20.00%
7 2 20.00%
8 1 10.00%
9 1 10.00%
10 1 10.00%
11 1 10.00%
(7 行受影响
*/
------解决方案--------------------
改了一下:
create table #temp(
person_id int,
work_year int
)
insert into #temp(person_id,work_year)
select 2110020 ,4 union
select 2110067 ,5 union
select 2112274 ,6 union
select 2113775 ,7 union
select 2113841 ,8 union
select 2114508 ,9 union
select 2114870 ,10 union
select 2115337 ,11 union
select 2115408 ,7 union
select 2115431 ,5 union
select 2115432 ,6;
select distinct work_year as 工作年限,
count(work_year) over(partition by work_year) as 工作年限人数,
count(person_id) over () 总人数,
cast(
cast(
(count(work_year) over(partition by work_yea