我想知道使用x次的窗口是否会执行x次数据洗牌。
例子:
from pyspark.sql import functions as F
from pyspark.sql.window import Window
w = Window.partitionBy('col_a').orderBy('date')
df = df.withColumn('new_col_1', F.lag('col_b').over(w))
df = df.withColumn('new_col_2', F.row_number().ov
我打算在列中的值之间进行插值(SQL线性插值),并使用查询将其插入到新列中。根据我在网上的搜索,我怀疑LEAD分析函数可能有用。我是编写SQL查询的新手。因此,任何关于如何实现这一目标的见解都将非常有帮助。
示例数据集如下所述:
Emp Test_date Value
--- --------- -----
A 1/1/2001 null
A 1/2/2001 100
A 1/3/2001 null
A 1/4/2001 80
A 1/5/2001 null
A 1/6/2001 null
A 1/7/2001 75
我不得不使用查询的一部分来提取日期相差至少三个月的row_numbers。所以在下面的例子中,我想提取row_number 1(总是第一个),5和6。所以在row_number 1之后,row_numbers的date_diff >3个月(在第二个提取row_number之后,再次应用这个条件,直到没有)。SQL中有没有什么函数或方式可以实现这样的条件?
table_name: users
id row_number User date
---|----------|-------|---------------------|
1 |1
我在Oracle SQL工作。我有一个有I和日期的表,我试图按主题找到日期之间的平均时间。看起来会是这样的。
表格
SubjectID Date
1 8/01/2013 12:00:00 AM
1 8/31/2013 12:00:00 AM
1 9/10/2013 12:00:00 AM
2 1/01/2010 12:00:00 AM
2 1/21/2010 12:00:00 AM
可以说,我需要编写一个由SubjectID遍历该表的查询,记录日期之间的时间,并输
我已经得到了sql代码,它在分区和排序后在column1中创建了前5行的平均值: CAST (AVG(col1) OVER (Partition by col2 ORDER BY col3 ASC ROWS BETWEEN 5 PRECEDING AND 1 PRECEDING) AS DECIMAL(3,2)) AS col1avg 我想做一个类似的事情,但不是取5个值的平均值,而是创建一个用逗号分隔5个值的字符串。我尝试了多种想法,但都没有成功。任何帮助都将不胜感激。
因此,我尝试使用一个滞后函数(Google BigQuery),我的第一个值是NULL。
我用一个滞后函数来得到lag_Value_1,lag_Value_2.在这里:
SELECT ITEM,row_A,row_B,date,Value_1,Value_2,Value_3,Value_4,Value_5,
LAG(Value_1,0) OVER (PARTITION BY ITEM ORDER BY row_A asc) as lag_Value_1,
LAG(Value_2,0) OVER (PARTITION BY ITEM ORDER BY
我想使用SQL窗口函数计算移动平均值。下面的2“天”移动平均线的例子基本上可以正常工作,但如果只有一个数据点可用,它也可以计算平均值。只要没有足够的数据,我更希望平均值为null。
create table average(
nr int,
value float
);
insert into average values (1, 2), (2, 4), (3, 6), (3, 8), (4, 10);
SELECT
nr,
value,
AVG(value) OVER (ORDER BY nr ROWS BETWEEN 1 PRECEDING
这是我的表
id category
A Apple
A NULL
A Apple
B NULL
B Pear
B Pear
B Peach
B NULL
B NULL
C NULL
C NULL
C Apple
这就是我想要的桌子
id category
A Apple
A Apple
A Apple
B NULL
B Pear
B Pear
B Peach
B P
我正在寻找任何逻辑来将这些数据输出到下面的格式中。
但是在sql中找不到任何逻辑来实现这一点。
给定表
ID Country AreaDiscount Email
AB0215000001 Belgium 120 cm + 10% Abc@gmail.com
130 cm + 20% Abc@gmail.com
140
我试图在一个查询中计算N行的移动平均值N行,的所有行的。在这个例子中,我试图计算50行的移动平均值。
SELECT
h1.date,
h1.security_id,
( SELECT
AVG(last50.close)
FROM (
SELECT h.close
FROM history as h
WHERE h.date <= h1.date AND h.security_id = h1.security_id
OR
下面是原始表,我想根据每种产品的Install_Status和日期列的变化进行排名。 ? 查询: ;WITH CTE AS
(
SELECT
Product, Install_Status, Date_Inserted,
DENSE_RANK() OVER (PARTITION BY Product ORDER BY rank) rank
FROM
(SELECT
Product, Install_Status, Date_Inserted,
ROW_NUMBER() OVE
我有一个数据库,为属于不同行业的个别公司提供销售价值。在下面的示例数据集中:
set.seed(123)
df <- data.table(year=rep(1980:1984,each=4),sale=sample(100:150,20),ind=sample(LETTERS[1:2],20,replace = TRUE))
df[order(year,ind)]
year sale ind
1: 1980 114 A
2: 1980 102 A
3: 1980 130 B
4: 1980 113 B
5: 1981 136 A
6:
我有以下格式的数据
Id Code Date Amount Type
101 B25 5/4/2020 $500 C
101 A15 5/5/2020 $100 D
101 D15 5/5/2020 $200 D
102 B35 6/2/2020 $400 C
102 A15 6/2/2020 $50 D
我需要以下几点
Id Code D
我希望SQL从两列中添加数字,并将这两个数字的平均值放在一个单独的列中。
我目前正在以这种方式使用AVG:
AVG(InpCount + OutCount) OVER (PARTITION BY ProcedureID) as AverageCount,
AVG(InpAmount + OutAmount) OVER (PARTITION BY ProcedureID) as AverageAmount,
我希望SQL给出一个InpCount + OutCount的平均值,并将这个平均值放在上面的AverageCount列中。如果我也能对InpAmount + InpCount字段这样做,那么