我在下面提到了SQL,结果得到了下面提到的dataset。但我只想显示一个打开状态记录,其中有最小日期。
SELECT distinct o.svc_ord_nbr AS SVC_ORD_NBR,
o.svc_ord_stat_nm AS SVC_ORD_STAT_NM,
min(t.start_date_est) AS STRT_DT_EST, t.status_text
FROM A o inner join B t on t.ticket=o.notif_nbr
and o.svc_ord_nbr in ('021519_574819','110714
我正在尝试写一个Insert语句,它将遍历一组销售人员的销售编号,每一次销售都被标记为R或C类型的销售。我想在所有( R和C)、R和C中找到前100名销售人员。我不仅有销售数据,还有销售、保证金、计数、销售/计数数据,我也想做同样的事情。到目前为止,我必须执行12 SQL语句,才能完成这个任务(4个类别X3销售类型),每一个都是稍微不同的,以获得我的4个类别中的一个。
INSERT INTO ztbl_AllTopSalesPerson (SalesPerson)
SELECT TOP 100 tbl_Master.SalesPerson
FROM tbl_Master
WHERE tbl_M
我使用以下查询对项目进行排序,但也需要它来显示项目与顶级项之间的差异(顶级项将显示其与第二项之间的差异),如下所示:
SELECT rdate, rtime, SF, DENSE_RANK() OVER (PARTITION BY rdate, rtime ORDER BY rdate,
rtime, SF DESC) rank
FROM DailySF
rdate | rtime | SF | rank | DiffTop
-------------------------------------------
18/02/2021 09:00 54
使用SQL Server Management Studio v17.9.1 我试图根据站点和区域的日期对一些数据进行排名/排序/分组,但我很难弄清楚,不是按字母顺序对区域进行排名,而是按照出现的最早日期进行排名。 以下是我掌握的数据: Site | Area | Space | Date
DCG X 7 02/02/2020 12:13
DCG X 5 04/02/2020 11:47
DCG X 12 10/02
Postgresql中是否有一种方法可以编写查询,根据有限制的列对行进行分组,而不放弃其他行。
假设我有一个有三列的表,id, color, score有下面的行
1 red 10.0
2 red 7.0
3 red 3.0
4 blue 5.0
5 green 4.0
6 blue 2.0
7 blue 1.0
我可以使用下面的查询获得基于颜色的带有窗口函数的分组
SELECT * FROM (
SELECT id, color, score, rank()
OVER (PARTITION BY color ORDER BY score DESC)
FROM grou
我遇到了麻烦,我花了很长时间想办法,请帮帮我
这是桌子
5555 Alex 10:47 2013-11-09
6666 Joel 00:09 2013-11-10
6666 Joel 22:10 2013-11-11
5555 Alex 01:00 2013-11-11
就像这样,它将有一个星期的日期,我需要创建一个视图,并将所有7天作为一个连续假设。
day1 date is 2013-11-09
day2 date is 2013-11-10
day3 date is 2013-11-11
我需要这个
Emplid Name
我有这个示例表:
我需要创建一个排名列,它将根据is_true=1对id进行排序,这意味着is_true从0到1的每一次更改都会使索引增加1。类似于以下内容:
我试过这样的方法:
select id, customer_id, is_true,
rank() over (partition by customer_id order by (case when is_true=1 then id end)) index_rank
from table
但它不能满足我的需求。
任何帮助都将不胜感激。
我正在考虑使用over (partition by xx)的SQL查询。
我想知道如何为我得到的每个分区添加一个具有ID的列。例如,请参阅下表:
Name Country
---------------------------
Mark USA
Paul USA
Jennifer Canada
Carla Canada
José Mexico
Pablo Peru
在这个查询之后(使用一个假设的ID_PARTITION()函数):
select ID_PARTITION(), ro
我想使用星火SQL窗口函数来进行一些聚合和窗口化。
假设我使用这里提供的示例表( a: )
我想运行这个查询,给出每个类别的最大2收入,同时也给出每个类别的产品计数。
在我运行这个查询之后
SELECT
product,
category,
revenue
FROM (
SELECT
product,
category,
revenue,
dense_rank() OVER (PARTITION BY category ORDER BY revenue DESC) as rank
count(*) OVER (PARTITION
我正在寻找一些关于我是否可以在ntile查询中使用排名/密集排名函数的帮助。
我已经编写了以下代码:
NTILE(5) OVER (PARTITION BY JOB_TYPE ORDER BY SCORE DESC) AS M_NTILE
,DENSE_RANK() OVER (PARTITION BY MONTH_ENDING, JOB_TYPE ORDER BY M_NTILE DESC) AS RANK
但是我想要做的不是在ntile中按分数排序,我希望这是按排名查询中的结果排序的。
这个是可能的吗?如果有人能给我建议,我将不胜感激。
我试图在SQL上使用多个窗口函数创建一个分组,目的是在中间有其他组的情况下区分不同的组。见下表
Part | time | expected result |
a | 11-29-2022 00:05:00.000 | 1 |
a | 11-29-2022 00:05:00.010 | 1 |
b | 11-29-2022 00:06:00.000 | 2 |
c | 11-29-2022 00:15:00.000 | 3
我试着把数据记录分成几组。
每个组大小有4个记录,最后一个组可能小于4,每个组中有行编号,每个组中有计数in。
最终的结果应该是这样
我试过这样的方法
declare @t int
set @t = (select count(*) from mytable)
declare @s int
set @s = 4
select
t.Id
,@s over (order by t.Id asc) as GroupId
,case when (row_number() over (order by t.Id asc ) %@s ) = 0 then 4
这是一个棘手的问题,请耐心听我说。
我有一个有16000行的表,其中有3个由我们的应用程序分配的唯一索引。因此,在父/子的基础上,您将看到如下所示
Val1 Val2 client sequence_no sequence_ref
----------------------------------------------
A AA UK 1 1
A AB UK 2 1
A AC UK 3 1
B BA UK 1
我正在计算一个代表需要多长时间才能让x个客户申请服务:这意味着我需要在date_created - ie之间的时间。当代表到达某一“状态”的日期。当rep的客户端(= users)有一个非空的date_applied- ie时,就会达到状态。用户注册日期。
X是达到每个“状态”的最低标准,并与前面的一个问题联系起来:,我目前正在计算“状态”,如下所示:
case when count(date_applied) over (partition by rep_id) >=10 then 'status1'
when count(date_applied) ove
我不是SQL专家,甚至不接近。在下面的示例中,我将在一个PARTITION BY操作(Microsoft托管在Azure中)中使用PERCENT_RANK()子句对我的数据进行分组,以便按预期的方式排序:
DECLARE @Dinky TABLE
(
[Id] INT PRIMARY KEY NOT NULL,
[Name] nvarchar(32) NOT NULL,
[Score] float NOT NULL,
[Type] nvarchar(4) NOT NULL,
[Pool] int NOT NULL
);
INSERT INTO @Din
SELECT [Cole_Crops],
PERCENT_RANK() OVER (PARTITION BY HUC02
ORDER BY [Cole_Crops]) AS Cole_Crops_PCT_RANK],
[Row_Crops],
PERCENT_RANK() OVER (PARTITION BY HUC02
ORDER BY [Row_Crops]) AS Row_Crops_PCT_RANK]
当LastDate中存在差异时,下面的SQL可以识别不同的电话。但是,如果重复的手机有完全相同的LastDate,它就不能工作。
任何想法都会受到欢迎。
SELECT * FROM
(
SELECT ID, Phone, [LastDate]
,RANK() OVER (PARTITION BY Phone ORDER BY [LastDate]) AS 'RANK',
COUNT(Phone) OVER (PARTITION BY Phone) AS 'MAXCOUNT'
我有一张桌子(你可以在这里看到)和电影,每部电影都有一个类型和发行日期。
CREATE TABLE Movie (
ID int,
Title varchar(255),
Genre varchar(255),
Year int
);
INSERT into Movie VALUES(1, 'Movie 1', 'Horror', 1982);
INSERT into Movie VALUES(1, 'Movie 2', 'Drama', 1983);
INSERT into Movie VALU
嗨,如果我有下表的话
id code year
-- ---- ----
1 a 2000
1 b 2001
1 b 2002
1 b 2003
1 c 2007
2 a 1997
3 f 2006
3 f 2014
3 a 2015
我希望能够通过在id和code上进行分区来对行进行排序,同时按year排序
id code year ranked
我正在尝试编写一个查询(如果可能的话)来根据多个条件对ids进行排名。
我的表是这样的:
id group subgroup value
1 A Q 12
2 A Z 10
3 B Z 14
4 A Z 20
5 B W 20
我尝试了这个查询:
SELECT id,
CASE WHEN group = 'A' THEN ROW_NUMBER() OV
我正在尝试对用户打开移动应用程序的次数和他们在应用程序中进行的购买次数进行排序/计数,作为用户的运行计数。 这是我使用的代码: SELECT user, type,
CASE WHEN type='session_start' OR type='iap' THEN RANK() OVER (PARTITION BY user ORDER BY client_time) END AS rank,
CASE WHEN type='iap' THEN COUNT(product_id) OVER (PARTITION BY user ORDER BY
我有一个连接customers和transactions表的子查询,别名为jq。我想按订单时间戳(order_ts)为每个客户的购买(交易)创建一个排名。所以我就这么做了
SELECT customer_id,
order_id,
order_ts,
RANK() OVER (PARTITION BY customer_id ORDER BY order_ts ASC) AS purchase_rank,
amount
FROM jq GROUP BY customer_id
ORDER BY customer
在查询优化的过程中,我得到了以下SQL查询:
select s.*
from
(
select id, DATA, update_dt, inspection_dt, check_dt
RANK OVER()
(PARTITION by ID
ORDER BY update_dt DESC, DATA) rank
FROM TABLE
where update_dt < inspection_dt or update_dt < check_dt
) r
where r.rank = 1
查询返回最新check_dt对应的数据,但我想获取的是: 1.最新check_dt对应