當前位置:首頁 » 編程語言 » sql按年齡分段怎麼寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql按年齡分段怎麼寫

發布時間: 2023-03-10 10:02:38

Ⅰ 關於oracle資料庫 sql的寫法 我想寫一個 關於年齡分組的sql 按1-30歲,31-50歲,50以上. 想分成這3個年齡段

SELECT COUNT(CASE WHEN AGE BETWEEN 1 AND 30 THEN 1 ELSE 0 END) AS 1-30歲
,COUNT(CASE WHEN AGE BETWEEN 31 AND 50 THEN 1 ELSE 0 END) AS 31-50歲
,COUNT(CASE WHEN AGE > 50 THEN 1 ELSE 0 END) AS 50以上
FROM TABLE_NAME;
這個語句就可以做到~

Ⅱ sql語句如何按年齡段和性別分組查詢,麻煩給個具體例子,年齡欄位是age,性別欄位是sex

1、建表:

CREATETABLE[dbo].[Users](
[Name][nvarchar](50)NULL,
[Age][int]NULL,
[Sex][nchar](10)NULL
)ON[PRIMARY]
GO

2、插入數據:

Ⅲ 用SQL語句查詢年齡分段的分組查詢 我的數據表格式如下

--不知道你要的是不是這樣的結果

CreatetableT
(
籍貫varchar(10),性別varchar(2),生日varchar(10)
)

insertintotvalues('四川','男','19890627')
insertintotvalues('新疆','男','19930711')
insertintotvalues('河南','男','19890623')
insertintotvalues('四川','女','19880512')
insertintotvalues('新疆','男','19950425')
insertintotvalues('河南','女','19800304')

Select籍貫,性別,
Sum(CaseWhen年齡<=20Then1Else0End)As[0-20歲(人)],
Sum(CaseWhen年齡Between21And40Then1Else0End)As[21-40歲(人)],
Sum(CaseWhen年齡Between41And60Then1Else0End)As[41-60歲(人)],
Sum(CaseWhen年齡>=61Then1Else0End)As[60歲以上(人)]
From
(
Select*,Year(GETDATE())-Year(convert(Datetime,生日))As年齡
Fromt
)s
GroupBy籍貫,性別
withrollup

Ⅳ 關於年齡段查詢的sql語句:怎麼寫出來呀 年齡段 人數 百分比 男 女 合計 男 女 0-10 11-20 。 。

給一個示例,自己修改

SELECT '年齡段'=(case
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=25 THEN '25歲及以下'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=33 THEN '26歲-33歲'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=41 THEN '34歲-41歲'
else '41歲以上'
END),
COUNT(FID) AS 人數,
CAST(
LEFT(
ROUND(100.00 * COUNT(FID) / (SELECT COUNT(FID) AS total
FROM tperson
WHERE FEmployState='正式'),
2),
5)
AS VARCHAR) + '%' AS 百分比

FROM TPERSON
WHERE FEmployState IN ('正式')
GROUP BY
(case
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=25 THEN '25歲及以下'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=33 THEN '26歲-33歲'
WHEN (datediff(year,EBIRTHDAY,getdate())-1)<=41 THEN '34歲-41歲'
else '41歲以上'
END)

Ⅳ 如何寫一個sql語句能根據出生日期按年齡段統計人數

你需要使用兩種SQL語句:

  • COUNT( )

  • BETWEEN

然後你的資料表要有紀錄年齡,或是至少要有出生日期。

大概的語法如下:

SELECT COUNT( 欄位名 ) FROM 資料表 WHERE 年齡 BETWEEN '40' and '50'

欄位名:不能是可以允許NULL值的欄位,有NULL的資料不會計算在內。

資料表:你要抓資料的那個資料表。

BETWEEN '40' and '50':意思是介於40~50歲。

Ⅵ 用sql語句實現年齡分段統計

先將年齡除10取整
select floor(年齡/10) as age from 表

再根據年齡整數分組統計
select age ,count(age) from
(
select floor(年齡/10) as age from 表
)
group by age
這樣基本效果就出來了,達到樓主的要求就要加如函數計算了

sql語法
select convert(varchar,age*10)+'--'+convert(varchar,(age+1)*10) ,count(age) from
(
select floor(年齡/10) as age from 表
)
group by age

oracle語法
select age*10 || '--'|| (age+1)*10 ,count(age) from
(
select floor(年齡/10) as age from 表
)
group by age

Ⅶ SQL語句按年齡分組,統計各個年齡的人數

先確保你的出生年月是datetime的日期類型,語法如下。

select case when datediff(year,出生年月,getdate()) <= 20 then '20歲年齡段'
when datediff(year,出生年月,getdate()) between 21 and 25 then '21-25年齡段'
else '25以上年齡段' end as 年齡段,count(1) as 年齡段人數
from 表
group by
case when datediff(year,出生年月,getdate()) <= 20 then '20歲年齡段'
when datediff(year,出生年月,getdate()) between 21 and 25 then '21-25年齡段'
else '25以上年齡段' end

也可以試試

select sum(case when datediff(year,出生年月,getdate()) <= 20 then 1 else 0 end) '20歲年齡段',
sum(case when datediff(year,出生年月,getdate()) between 21 and 25 then 1 else 0 end) '21-25年齡段',
sum(case when datediff(year,出生年月,getdate()) > 25 then 1 else 0 end) '25以上年齡段'
from 表

Ⅷ SQL統計年齡段

例如:
select case when [年齡] BETWEEN 10 AND 20 then '10-20'
when [年齡] BETWEEN 20 AND 30 then '20-30'
when [年齡] > 30 then '30以上' end as '年齡段',
count(*) as '人數' FROM [Table]

Ⅸ xml文件里如何寫sql語句實現年齡分組

xml 文件中 小於號 < 要用 &lt; 代替吧。

selectt1.p1asnum1,t2.p2asnum2,t3.p3asnum3,t4.p4asnum4,t5.p5asnum5from
(selectcount(age)asp1frompersonwhereage>=0andage&lt;11)t1INNERJOIN
(selectcount(age)asp2frompersonwhereage>=11andage&lt;21)t2INNERJOIN
(selectcount(age)asp3frompersonwhereage>=21andage&lt;31)t3INNERJOIN
(selectcount(age)asp4frompersonwhereage>=31andage&lt;41)t4INNERJOIN
(selectcount(age)asp5frompersonwhereage>=41andage&lt;51)t5

希望能幫到你