Oracle SQL - 查询具有同一列的{2}值的表

时间:2016-03-03 06:25:59

标签: sql oracle

我有一个要求,我必须按照以下条件从客户表中获取数据。

客户表包含客户id.action,时间戳,范围

1.需要使用范围查询客户表,该范围为特定范围提供数据。

2.对于相同的客户ID可以有多行,因此为了获取单行,条件是如果客户操作更新则必须采用最新行。如果操作是插入,则我们只需要考虑插入。

我使用多个查询来完成此操作,例如获取不同的客户ID,然后再次查询仅插入并将客户ID放入数组中,然后使用剩余的客户ID进行再次查询。但我觉得这可以用更有效的方式完成,你们中的任何人都可以告诉我更好的解决办法吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下查询。我不确定您是否期望以下查询。

对于插入

C:\Python27\Scripts>pip2.7.exe install ibm_db
Collecting ibm-db
Could not find a version that satisfies the requirement ibm-db (from versions:)
No matching distribution found for ibm-db
C:\Python27\Scripts>

更新

SELECT * 
FROM customer_changes
WHERE action = 'I' 
AND custidpub EXISTS (SELECT DISTINCT custidpub
                      FROM customer_changes
                      WHERE rangeid ='YOUR_RANGE')

ORDER BY timestamp