SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY hrl.Frn) as Row,
hrl.unq, hrl.LcnsId, hc.Business,hc.Name,hc.Phone,
hrl.Frn,hrl.CallSign, hrl.gsamarkettypeid,
gmt.[Market Type Code] + ' - ' + gmt.gsamarkettype,
hrl.gsalatitude,hrl.gsalongitude,
rsc.RadioServiceCode + ' - ' + rsc.RadioService,
GrantDt, ExpirationDt, EffectiveDt,
CancellationDt
FROM dbo.sbi_f_HldrRgstrtnLcns hrl
INNER JOIN dbo.sbi_f_HldrCntcts hc on
hc.CallSign = hrl.CallSign
INNER JOIN dbo.sbi_l_radioservicecodes rsc on
rsc.radioservicecodeid = hrl.radioservicecodeid
LEFT OUTER JOIN dbo.sbi_l_GSAMarketTypes gmt on
gmt.GSAMarketTypeId = hrl.GSAMarketTypeId
WHERE hc.Entity_Type = 'L' AND hrl.LicenseStatusId IN (1)
and Row >=1 and Row <= 20) …Run Code Online (Sandbox Code Playgroud) 我正在尝试理解在我的查询中最外层选择上使用DISITINCT时使用row_number()函数以降序排序结果时看到的异常行为,如下所示:
SELECT DISTINCT (ID), State_Id, Name_Of_Trip, Date_Of_Travel, Creation_Date, Locking_Id, Applicant_Name, Reference_Number, State_Name
FROM (
SELECT app.ID, app.State_Id, app.Name_Of_Trip, app.Date_Of_Travel, app.Creation_Date, app.Locking_Id, app.Applicant_Name, app.Reference_Number,
State.Name AS State_Name, ROW_NUMBER() OVER(ORDER BY Reference_Number DESC) as rowNum
FROM Application_Leg AS app
INNER JOIN State AS state
ON app.State_Id = state.ID
WHERE (app.State_Id = 5 OR app.State_Id = 6 OR app.State_Id = 8) AND app.Organisation_Id=12
AND Leg_Number IN
(SELECT DISTINCT Leg_Number
from Application_Leg as al
INNER JOIN
Organisation as org
ON al.Organisation_Id = org.ID
WHERE …Run Code Online (Sandbox Code Playgroud) 我正在尝试获取顺序行编号,但无论我尝试什么都不起作用.这是我的查询
select
l.seq, l.mn_no as mn_no, l.sb_no as sb_no,
l.dp_no as dp_no,
sum(costprice) as amt
from
dbo.mac_pur_tempdetail d
inner join
dbo.mac_pur_tempheader h on d.header_id = h.header_id
and h.ref = 'SAH1FIHC'
inner join
dbo.mac_actlocmap l on l.loc_main = d.loc_id
and l.description = 'PUR'
group by
l.seq, l.mn_no, l.sb_no, l.dp_no
Run Code Online (Sandbox Code Playgroud)
这是该查询的结果
1 4110 30 0000 17.5000
4 4110 20 0000 3.6000
6 4110 40 0000 6.0000
7 4110 10 0000 1.8000
14 4110 25 0000 3.6000
15 4110 50 0000 1.8000
Run Code Online (Sandbox Code Playgroud)
我试过了 …
是否可以通过row_number中的新列进行排序?我想做这样的事情:
select text1 + text2 as NEW_TEXT, row_number over (order by NEW_TEXT) from table
Run Code Online (Sandbox Code Playgroud)
但这样的排序不起作用(我得到随机结果).
我有以下查询:
SELECT * FROM
(
SELECT
a.TeacherID, a.UniversityID,
ROW_NUMBER() OVER (ORDER BY a.TeacherID) AS RowNum
FROM
SelectAll a
LEFT JOIN
mp_Ratings r ON a.TeacherID = r.TeacherID
GROUP BY
a.TeacherID, a.UniversityID
) AS TeacherInfo
WHERE RowNum BETWEEN 10 AND 50
Run Code Online (Sandbox Code Playgroud)
它工作正常.现在,如果我想做类似的事情:
SELECT * FROM
(
SELECT
a.TeacherID, a.UniversityID,
ROW_NUMBER() OVER (ORDER BY a.TeacherID) AS RowNum
FROM
SelectAll a
LEFT JOIN
mp_Ratings r ON a.TeacherID = r.TeacherID
GROUP BY
a.TeacherID, a.UniversityID
) AS TeacherInfo
WHERE RowNum BETWEEN 10 AND 50 AND UniversityID …Run Code Online (Sandbox Code Playgroud) 请考虑此表:
id Col1 Col2
--------------------------
1 nima null
18 john null
25 sara null
Run Code Online (Sandbox Code Playgroud)
我有一个选择,转发这个记录:
id Col
---------------
1 LA
2 WA
3 FL
Run Code Online (Sandbox Code Playgroud)
我想用同样的顺序,你see.for例如更新来更新上面这个表记录LA了nima和...
我怎么能这样做?
谢谢
我在表格中显示正确的数据时遇到了一些麻烦.我不确定要搜索什么.我不确定min(列)或max(列)会在这里帮助我.让我们看看我是否可以解释我的问题.
我的表包含这些数据:
> Code (nvarchar) | DateFrom (datetime) | DateTo (datetime)
> =========================================================
> 3006 | 2014-06-18 07:00:00 | 2014-06-18 08:00:00
> 3006 | 2014-06-18 09:00:00 | 2014-06-18 22:00:00
> 1006 | 2014-06-18 07:00:00 | 2014-06-18 09:00:00
> 1006 | 2014-06-18 08:00:00 | 2014-06-18 08:30:00
> 1006 | 2014-06-18 08:10:00 | 2014-06-18 18:00:00
Run Code Online (Sandbox Code Playgroud)
我将以一种观点来呈现这一点.它将按代码分组.
我想要的是这个输出:
> Code | DateFrom | DateTo
> =========================================================
> 3006 | 2014-06-08 07:00:00 | 2014-06-18 08:00:00
> 3006 | 2014-06-18 09:00:00 | 2014-06-18 22:00:00
> …Run Code Online (Sandbox Code Playgroud) 我试图从每个唯一的TnID记录中提取第一个结果,以便我可以将其拉入另一个数据库.
SELECT DISTINCT [Tenant Name]
,CARL_Tenant_Contacts.ID
,Carl_current_tenants.TnID
,PrId FROM CARL_Tenant_Contacts
JOIN CARL_Current_Tenants ON CARL_Current_Tenants.ID = CARL_Tenant_Contacts.TnID
WHERE [Tenant Name] IS NOT NULL
and [Tenant Name] != ''
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所获得的代码,但它并没有完全符合我的要求.
目前的结果是:
(还有更多,这只是一个小例子.)
但我想要的东西会返回每个TnID的名字,例如,来自TnID1我希望Julie Robinson女士,来自TnID2我想要Julia Gregg女士,TnID3先生Andrew Leigh webb等等.
这是可行的还是我尝试不可能的?
我有一个数据框,我需要获取特定行的行号/索引。我想添加一个新行,使其包括字母以及行号/索引,例如。“ A-1”,“ B-2”
#sample data
a= sqlContext.createDataFrame([("A", 20), ("B", 30), ("D", 80)],["Letter", "distances"])
Run Code Online (Sandbox Code Playgroud)
带输出
+------+---------+
|Letter|distances|
+------+---------+
| A| 20|
| B| 30|
| D| 80|
+------+---------+
Run Code Online (Sandbox Code Playgroud)
我希望新产品是这样的,
+------+---------------+
|Letter|distances|index|
+------+---------------+
| A| 20|A - 1|
| B| 30|B - 2|
| D| 80|D - 3|
+------+---------------+
Run Code Online (Sandbox Code Playgroud)
这是我一直在努力的功能
def cate(letter):
return letter + " - " + #index
a.withColumn("index", cate(a["Letter"])).show()
Run Code Online (Sandbox Code Playgroud) 我正在尝试选择特定行号之间的行(例如1到50或51到10等).
下面是我的表MatTk模式,所有列都允许空值:
tk_id [varchar(50)] | mat_id [varchar(50)] | ven_id [varchar(50)] | tk_rate [money]
1023 104 2212 120.11
Run Code Online (Sandbox Code Playgroud)
本文使用Row_Number()建议选择行的子集ORDER BY id但我想避免它并以表数据的自然顺序显示它.
另请查看本文SQL Server 2005 ROW_NUMBER(),不带ORDER BY,建议插入临时表,但它不是一个选项,因为该MatTk表有数百万行.
有没有办法按行号查询行而不按ID排序而不创建临时表?
row-number ×10
sql ×7
sql-server ×6
t-sql ×2
database ×1
dataframe ×1
pyspark ×1
sql-order-by ×1
sql-update ×1