我在编写查询时遇到问题。
我想选择分组的每组行的第一行
我的桌子是Transactions
:
userID | Date | StoreID
---------------------------
1 | 8-9-2013 | 10
1 | 9-9-2013 | 10
1 | 10-9-2013| 20
2 | 7-9-2013 | 30
2 | 8-9-2013 | 10
2 | 9-9-2013 | 20
1 | 11-9-2013| 10
2 | 10-9-2013| 20
我尝试使用以下SQL语句:
Select
tr.userID , Min(tr.TransactionDate) FirstDate
From
Transactions tr
Group By
tr.userID
我得到以下输出:
userID | Date
------------------
1 | 8-9-2013
2 | 7-9-2013
但是我Store ID
在每笔第一笔交易中都需要。
我需要像那样
userID | Date | StoreID
-------------------------
1 | 8-9-2013 | 10
2 | 7-9-2013 | 30
请任何人可以帮助我
SQL小提琴
MS SQL Server 2008架构设置 :
CREATE TABLE Transactions
([userID] int, [Date] datetime, [StoreID] int)
;
INSERT INTO Transactions
([userID], [Date], [StoreID])
VALUES
(1, '2013-08-09 00:00:00', 10),
(1, '2013-09-09 00:00:00', 10),
(1, '2013-10-09 00:00:00', 20),
(2, '2013-07-09 00:00:00', 30),
(2, '2013-08-09 00:00:00', 10),
(2, '2013-09-09 00:00:00', 20),
(1, '2013-11-09 00:00:00', 10),
(2, '2013-10-09 00:00:00', 20)
;
查询1 :
SELECT
tr.userID , Min(tr.Date) FirstDate , tr2.storeid
FROM
Transactions tr
inner join Transactions tr2 on tr.userid = tr2.userid and
tr2.date = (select top 1 date
from transactions t
where t.userid = tr2.userid
order by date asc)
GROUP BY
tr.userID, tr2.storeid
结果 :
| USERID | FIRSTDATE | STOREID |
|--------|-------------------------------|---------|
| 1 | August, 09 2013 00:00:00+0000 | 10 |
| 2 | July, 09 2013 00:00:00+0000 | 30 |
问题内容: 我有这个SQL查询: 这将导致类似于以下的输出: 我想每个Foo仅保留第一行,而忽略其余的行。 我怎么做? 问题答案:
问题内容: 我想知道如何检索由表适配器执行的SQL查询以进行记录。 例如: 输入: 输出: 我要记录的是insert语句,该语句由表适配器生成以执行insert命令。 我怎样才能做到这一点?有人对此有任何建议吗? 问题答案: 您可以使用此替代方法,并用其值替换ParameterName,但效果不好,因为您需要自己管理值格式,这可能很慢, 并且在执行Insert后需要获取参数。 代码:
问题内容: 我正在使用内部联接从2个表中查询一些数据。 这是查询, 现在,我只想要每个user_id的第一行。 像这样, 我应该为此使用什么查询? 问题答案: 这应该可以解决问题:
问题内容: 我有一个像下面这样的列表,其中第一个元素是id,另一个是字符串: 我只想从此元组列表创建ID列表,如下所示: 我将使用此列表,因此它必须是整数值的列表。 问题答案:
嗨,我有两张具有以下结构的表格 学生们 这里,COl1=ID,Col2=Name,Col3=SubjectCode,COl4=Col3中的标记,Col5=subjectCpde,Col6=Col5中的标记 另一个表格叫做主题 这里Col1=主题代码,COl2=学生表中引用的主题名称。 现在我的查询应该返回如下结果。它是如何实现的?
我正在对spark sql查询执行计划进行一些分析。explain()api打印的执行计划可读性不强。如果我们看到spark web UI,就会创建一个DAG图,该图分为作业、阶段和任务,可读性更高。是否有任何方法可以从执行计划或代码中的任何API创建该图?如果没有,是否有任何API可以从UI读取该grap?