表:
UserId, Value, Date.
我想得到UserId,每个UserId的max(Date)值.也就是说,具有最新日期的每个UserId的值.有没有办法在SQL中执行此操作?(最好是Oracle)
更新:对任何含糊不清的道歉:我需要获取所有UserIds.但对于每个UserId,只有该用户具有最新日期的那一行.
我有一个这样的表(但有更多列):
Code    Quantity         
-----   --------       
00001      1           
00002      1           
00002      1           
00002      2           
00003      2          
00003      1          
我希望得到与SELECT DISTINCT Code FROM table(00001,00002,00003)相同的结果,但是与所有其他表列相同.
更新:如果我执行此操作:SELECT DISTINCT Code, Quantity from table
我得到:
    Code    Quantity         
    -----   --------       
    00001      1           
    00002      1           
    00002      2           
    00003      1          
    00003      2  
我想得到:
    Code    Quantity         
    -----   --------       
    00001      1           
    00002      1                   
    00003      1 
提前致谢!
我想在仅附加数据存储区中重新实现一些现有的SQLAlchemy模型; append-only意味着该对象仅使用INSERT语句更新,而不是使用UPDATE或DELETE语句.
UPDATE和DELETE语句将替换为增加版本的另一个INSERT.将有一个is_deleted标志而不是DELETE,is_deleted=True将创建一个新版本:
id  | version | is_deleted | name      | description ...
---- --------- ------------ ----------- ---------------
  1 |       1 |          F | Fo        | Text text text.
  1 |       2 |          F | Foo       | Text text text.
  2 |       1 |          F | Bar       | null 
  1 |       3 |          T | Foo       | Text text text.         
另外,
我知道如何解决大多数这些问题,但我正在努力处理SQLAlchemy中的事件挂钩,它将处理需要在更新和删除时完成的某些事情.
SQLAlchemy文档已经有一些版本控制的基本示例.该版本行例子来接近我想要的东西,但他们不处理(1)删除和(2)外键关系.
(1)删除.我知道有一个session.deleted字段,我将以类似于如何session.dirty在versioned_rows.py …
有没有一种简单的方法来根据哪个记录在列中具有最大/最小值来过滤Django查询?我基本上是在问这些 问题,但是在Django的ORM的特定背景下.
例如
假设我有一个模型,用于存储每个人电话号码的历史值.
class Person(models.Model):
    name = models.CharField(max_length=100)
    phone = models.CharField(max_length=100)
    created = models.DateTimeField(auto_now_add=True)
记录:
Person(name='Jim',phone='123-456-9870', created=datetime(2005,1,2,4,2))
Person(name='Jim',phone='329-802-9870', created=datetime(2006,9,2,7,8))
Person(name='Sue',phone='324-345-3450', created=datetime(2008,7,4,6,1))
现在说我想找到每个人最近的电话号码.
在SQL中,我通常必须使用子查询来计算最大值:
SELECT p1.name, p1.phone, p1.created
FROM person_person p1, (
    SELECT name, MAX(created) AS max_created
    FROM person_person
    GROUP BY name
) AS p2
WHERE p1.name = p2.name AND p1.created = p2.max_created
Django中是否有任何可以简化此操作的机制?
我在我的后端使用PostgreSQL,因此任何依赖PostgreSQL特定功能的想法或解决方案都会有所帮助.
打印注册最多班级的学生的姓名和 sid(s)
注册
sid  class number
1     23
2     54
1     54
3     43
1     43
2     43
学生 sid 名称
1    sagar
2    kiran
3    ravi
4    vishal
输出
sid   sname
1     sagar
postgresql ×3
sql ×3
python ×2
distinct ×1
django ×1
django-orm ×1
ios ×1
oracle ×1
select ×1
soft-delete ×1
sqlalchemy ×1
sqlite ×1