orcal高手来看看这个复杂查询

来源:百度知道 编辑:UC知道 时间:2024/06/08 03:39:40
有一个车辆表
现在需要一个统计的sql
要求的结果是车辆牌照号的前两位不同的车辆占总车辆的百分之多少

前两位不同的车辆有多少种不知道

京A 2.3%
川B 1.4%

有人能做出来么?
搞定了
select 车牌, cast(百分比 as decimal(10,3)) as 百分比
from (
select substr(车牌, 1, 2) as 车牌,
(count(*)/(select count(*) from 车辆) )*100 as 百分比
from 车辆
group by substr(车牌, 1, 2)
)
where 百分比>0.00099
order by 百分比 desc

SELECT substr(车牌, 1, 3), CONVERT(varchar, COUNT(*) * 100 /
(SELECT COUNT(*) FROM 车辆)) + '%' AS 百分比
FROM 车辆
GROUP BY substr(车牌, 1, 3)
------------------------------------------
SELECT substr(车牌, 1, 3), CAST(COUNT(*) * 100 /
(SELECT COUNT(*) FROM 车辆) AS char(10)) + '%' AS 百分比
FROM 车辆
GROUP BY substr(车牌, 1, 3)
不好意思,忘了sql有的函数oracle里不能用,现在应该可以了,手边没oracle环境,没法测试。

我还不怎么了解orcal的pl/sql 我就用sqlserver的t-sql写下吧
declare @pre1 int
declare @pre2 int
declare @total int
select @pre1=count(*) from (select * from Tablename where 车牌 like '京A%')
select @pre2=count(*) from (select * from Tablename where 车牌 like '川B%')
select @total=count(*) from Tablename
然后做个除法就得出结果来啦!!