SQL中有没有类似pandas.cut的函数?
Is there any function like pandas.cut in SQL?
我有以下类型的数据库:
My_Variable
20
2
3
13
4
5
31
我知道 python 如果我想把它装箱,我只需这样做:
My_Table['Bin'] = pd.cut(My_Table['My_Variable'],[0, 5, 10, 20, 1000])
我得到的结果是:
My_Variable Bin
20 (10, 20]
2 (0, 5]
3 (0, 5]
13 (10, 20]
4 (0, 5]
5 (0, 5]
31 (20, 1000]
在SQL中有没有类似的功能可以做到这一点?或者我用这样的东西手动完成:
case
when 'My_Variable'<5 then '(0, 5]'
when ....
end as 'Bin'
感谢您的帮助
您可以使用 case
表达式分配垃圾桶:
select t.*,
(case when my_variable <= 5 then '(0-5]'
when my_variable <= 10 then '(5-10]'
when my_variable <= 20 then '(10-20]'
when my_variable <= 1000 then '(20-1000]'
end) as bin
from t;
某些数据库可能具有更专业的功能,但这是一种不受数据库影响的机制。
我有以下类型的数据库:
My_Variable
20
2
3
13
4
5
31
我知道 python 如果我想把它装箱,我只需这样做:
My_Table['Bin'] = pd.cut(My_Table['My_Variable'],[0, 5, 10, 20, 1000])
我得到的结果是:
My_Variable Bin
20 (10, 20]
2 (0, 5]
3 (0, 5]
13 (10, 20]
4 (0, 5]
5 (0, 5]
31 (20, 1000]
在SQL中有没有类似的功能可以做到这一点?或者我用这样的东西手动完成:
case
when 'My_Variable'<5 then '(0, 5]'
when ....
end as 'Bin'
感谢您的帮助
您可以使用 case
表达式分配垃圾桶:
select t.*,
(case when my_variable <= 5 then '(0-5]'
when my_variable <= 10 then '(5-10]'
when my_variable <= 20 then '(10-20]'
when my_variable <= 1000 then '(20-1000]'
end) as bin
from t;
某些数据库可能具有更专业的功能,但这是一种不受数据库影响的机制。