11,849
社区成员
发帖
与我相关
我的任务
分享
--将 excel 数据插入到数据库中的表
--用导入导出向导也可以。
select *
into tmp
from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=F:\MyDocuments\Downloads\个人数据.xls')...[Sheet1$]
--查询
SELECT
LTRIM(
(COUNT(1)*100)
/
(SELECT COUNT(1) FROM tmp)
)+'%' AS [16岁以下65岁以上人口占家庭总人口的比例]
FROM tmp WHERE CAST(年龄 AS INT)<16 OR CAST(年龄 AS INT)>65;
/*
16岁以下65岁以上人口占家庭总人口的比例
--------------------------------------
28%
*/
SELECT
[家庭id]
,
LTRIM(
(SUM(CASE WHEN CAST(年龄 AS INT)<16 OR CAST(年龄 AS INT)>65 THEN 1 ELSE 0 END)*100)
/
COUNT(1)
)+'%' AS [按家庭分组统计16岁以下65岁以上人口占家庭人口的比例]
FROM tmp
GROUP BY [家庭id]
ORDER BY [家庭id]
/*
家庭id 按家庭分组统计16岁以下65岁以上人口占家庭人口的比例
2013000001 100%
2013000002 25%
2013000003 100%
2013000004 0%
2013000005 0%
2013000006 100%
2013000007 50%
2013000008 40%
2013000009 33%
2013000010 33%
2013000011 33%
2013000012 100%
2013000013 100%
2013000014 0%
2013000015 100%
…… 数据太多,忽略后面
*/