相关疑难解决方法(0)

获取具有列的最大值的行

表:

UserId, Value, Date.
Run Code Online (Sandbox Code Playgroud)

我想得到UserId,每个UserId的max(Date)值.也就是说,具有最新日期的每个UserId的值.有没有办法在SQL中执行此操作?(最好是Oracle)

更新:对任何含糊不清的道歉:我需要获取所有UserIds.但对于每个UserId,只有该用户具有最新日期的那一行.

sql oracle greatest-n-per-group

556
推荐指数
10
解决办法
56万
查看次数

我可以在WHERE子句中使用CASE表达式吗?

我不知道如何在sql中编写查询.
这是我到目前为止所尝试的.

where
  case 
       when a.book_id like 'AB%' then a.book_id = b.school_id,   --1   
       when a.book_id like 'CB%' then a.book_id = b.college_id.  --2
  end
Run Code Online (Sandbox Code Playgroud)


案例1和2解释.

1-我相信是好的.
2- a.book以字母CB开头,CBQ123然后只需取Q123= b.college_id.

b.college_id前面没有CB.

编辑以添加示例

select 
       a.Name,
       a.ID,
       a.Due,
       b.school_id,
       b.college_id
from Student a and FinishedStudent b
where
  case 
       when a.book_id like 'AB%' then a.book_id = b.school_id,   --1   
       when a.book_id like 'CB%' then a.book_id = b.college_id.  --2
  end
Run Code Online (Sandbox Code Playgroud)

如果a.book = CBQ111那么Q111在FinishedStudent表中而不是CBQ11,所以我需要比较最后3个字符.

用案例2编辑

   when a.book_id ='CBQ111' then a.book_id(Q111) = b.college_id. …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

2
推荐指数
1
解决办法
453
查看次数

标签 统计

sql ×2

greatest-n-per-group ×1

oracle ×1

sql-server ×1