我有这张桌子:

我想提出,将返回每个请求deal_id具有最高的行timestamp,并相应status_id.
所以对于这个例子,我会返回2行:
1226, 3, 2009-08-18 12:10:25
1227, 2, 2009-08-17 14:31:25
Run Code Online (Sandbox Code Playgroud)
我尝试用这个查询来做
SELECT deal_id, status_id, max(timestamp) FROM deal_status GROUP BY deal_id
Run Code Online (Sandbox Code Playgroud)
但它会回错status_id:
1226, 1, 2009-08-18 12:10:25
1227, 1, 2009-08-17 14:31:25
Run Code Online (Sandbox Code Playgroud) 假设我有一个表"事务",其中包含"acct_id""trans_date"和"trans_type"列,我想过滤此表,以便我只拥有每个帐户的最后一笔交易.显然我可以做点什么
SELECT acct_id, max(trans_date) as trans_date
FROM transactions GROUP BY acct_id;
Run Code Online (Sandbox Code Playgroud)
但后来我失去了我的trans_type.然后,我可以使用我的日期列表和帐户ID进行第二次SQL调用,然后返回我的trans_type,但这感觉很麻烦,因为它意味着要么来回发送数据到sql server,要么就是创建一个临时表.
有没有办法用一个查询来做到这一点,希望是一个可以与mysql,postgres,sql-server和oracle一起使用的泛型方法.
通过在PG 9.1上使用libpq,我试图编写查询以从具有最高索引'my_id'的行获取值:
SELECT my_id, col2, col3
FROM mytable
WHERE my_id = MAX(my_id)
Run Code Online (Sandbox Code Playgroud)
这给了我错误:
错误:WHERE子句中不允许聚合...
如何正确编写这样的查询?
如何在oracle查询中获得几个组的N个结果.
例如,给出下表:
|--------+------------+------------|
| emp_id | name | occupation |
|--------+------------+------------|
| 1 | John Smith | Accountant |
| 2 | Jane Doe | Engineer |
| 3 | Jack Black | Funnyman |
|--------+------------+------------|
Run Code Online (Sandbox Code Playgroud)
还有更多行占用更多.我想从每个职业中找到三名员工(比方说).
有没有办法在不使用子查询的情况下执行此操作?
SELECT * FROM A
JOIN B
ON B.ID = A.ID
AND B.Time = (SELECT max(Time)
FROM B B2
WHERE B2.ID = B.ID)
Run Code Online (Sandbox Code Playgroud)
我试图在MYSQL中加入这两个表.不要注意,如果ID是唯一的,那么我不会尝试这样做.我浓缩了真实的解决方案来绘制简化的图片.我试图在特定记录的最大日期抓住并加入表B. 此过程由SSIS包运行,并且说B2.ID是未知列.我经常在MSSQL中做这样的事情并且是MYSQL的新手.任何人有任何指针或想法?
我有一个这样的样本表:
CREATE TABLE #TEMP(Category VARCHAR(100), Name VARCHAR(100))
INSERT INTO #TEMP VALUES('A', 'John')
INSERT INTO #TEMP VALUES('A', 'John')
INSERT INTO #TEMP VALUES('A', 'John')
INSERT INTO #TEMP VALUES('A', 'John')
INSERT INTO #TEMP VALUES('A', 'John')
INSERT INTO #TEMP VALUES('A', 'John')
INSERT INTO #TEMP VALUES('A', 'Adam')
INSERT INTO #TEMP VALUES('A', 'Adam')
INSERT INTO #TEMP VALUES('A', 'Adam')
INSERT INTO #TEMP VALUES('A', 'Adam')
INSERT INTO #TEMP VALUES('A', 'Lisa')
INSERT INTO #TEMP VALUES('A', 'Lisa')
INSERT INTO #TEMP VALUES('A', 'Bucky')
INSERT INTO #TEMP VALUES('B', 'Lily')
INSERT INTO #TEMP …Run Code Online (Sandbox Code Playgroud) 我的数据库中有一个表有很多记录,有些记录对其中一个列共享相同的值.例如
| id | name | software |
______________________________
| 1 | john | photoshop |
| 2 | paul | photoshop |
| 3 | gary | textmate |
| 4 | ade | fireworks |
| 5 | fred | textmate |
| 6 | bob | photoshop |
Run Code Online (Sandbox Code Playgroud)
我想通过使用SQL语句返回最常见的软件的价值.
因此,在上面的示例中,所需的SQL语句将返回"photoshop",因为它比任何其他软件都要多.
这可能吗?
感谢您的时间.
我的桌子:
ID NUM VAL
1 1 Hello
1 2 Goodbye
2 2 Hey
2 4 What's up?
3 5 See you
Run Code Online (Sandbox Code Playgroud)
如果我想返回每个ID的最大数量,它真的很干净:
SELECT MAX(NUM) FROM table GROUP BY (ID)
Run Code Online (Sandbox Code Playgroud)
但是,如果我想获取与每个ID的每个数字的最大值相关联的值,该怎么办?
为什么我不能这样做:
SELECT MAX(NUM) OVER (ORDER BY NUM) FROM table GROUP BY (ID)
Run Code Online (Sandbox Code Playgroud)
为什么这是一个错误?我希望这个选择按ID分组,而不是为每个窗口单独分区...
编辑:错误是"不是GROUP BY表达式".
我在留言簿中有一个包含用户评论的表格.列是:id,user_id,title,comment,timestamp.
我需要为每个用户选择最新的行.我已尝试使用group by但没有管理它,因为我无法在同一查询中选择其他任何我按user_id分组的内容:
SELECT user_id, MAX(ts) FROM comments GROUP BY user_id
Run Code Online (Sandbox Code Playgroud)
例如,在此查询中,我无法添加也选择列id,tilte和comment.如何才能做到这一点?
我正在尝试获取与我下载的每个帖子相关的最新1或2条评论,有点像instagram,因为它们显示每个帖子的最新3条评论,到目前为止我收到的帖子和喜欢的数量.
现在我需要做的就是弄清楚如何获得最新的评论,不太确定如何处理它,这就是为什么我希望有更多专业知识的人可以帮助我!
这是我目前的查询:
(SELECT
P.uuid,
P.caption,
P.imageHeight,
P.path,
P.date,
U.id,
U.fullname,
U.coverImage,
U.bio,
U.username,
U.profileImage,
coalesce(Activity.LikeCNT,0),
Activity.CurrentUserLiked
FROM USERS AS U
INNER JOIN Posts AS P
ON P.id = U.id
LEFT JOIN (SELECT COUNT(DISTINCT Activity.uuidPost) LikeCNT, Activity.uuidPost, Activity.id, sum(CASE WHEN Activity.id = $id then 1 else 0 end) as CurrentUserLiked
FROM Activity Activity
WHERE type = 'like'
GROUP BY Activity.uuidPost) Activity
ON Activity.uuidPost = P.uuid
AND Activity.id = U.id
WHERE U.id = $id)
UNION
(SELECT
P.uuid,
P.caption,
P.imageHeight,
P.path,
P.date, …Run Code Online (Sandbox Code Playgroud)