Oracle SQL 开发人员(4.0.0.12)
Oracle SQL Developer(4.0.0.12)
第一次在这里发帖,希望一切顺利
我尝试使用 Oracle SQL Developer 进行查询,其中 returns 来自 table 的 customer_ID 以及来自另一个的付款时间。我很确定问题出在我的逻辑流程中(我使用 SQL 已经很长时间了,而且它又回到了学校,所以我有点生疏了)。我想将 ID 列为 DISTINCT 和 ORDER BY 日期 ASCENDING,因此只会显示第一个日期。
然而,返回的 table 在某些情况下包含两次或更多次相同的 ID。我什至在滚动浏览时发现了几次相同的 ID 和相同的日期。
如果您想了解更多请询问!
SELECT DISTINCT
FIRM.customer.CUSTOMER_ID,
FIRM.account_recharge.X__INSDATE FELTOLTES
FROM
FIRM.customer
INNER JOIN FIRM.account
ON FIRM.customer.CUSTOMER_ID = FIRM.account.CUSTOMER
INNER JOIN FIRM.account_recharge
ON FIRM.account.ACCOUNT_ID = FIRM.account_recharge.ACCOUNT
WHERE
FIRM.account_recharge.X__INSDATE BETWEEN TO_DATE('14-01-01', 'YY-MM-DD') AND TO_DATE('14-12-31', 'YY-MM-DD')
ORDER
BY FELTOLTES
SELECT DISTINCT FIRM.customer.CUSTOMER_ID,
FIRM.account_recharge.X__INSDATE FELTOLTES
Distinct 同时应用于两个列,这意味着您将从两个列中获得 值集 的不同 ROW列。所以,基本上不同的是指 select 列表中的所有列。
相当于select没有distinct但有group by子句。
意思是,
select distinct a, b....
相当于,
select a, b...group by a, b
如果您想要所需的输出,则 CONCATENATE 列。然后,distict 将处理单个串联的结果集。
你的 select 是这样工作的,因为 CUSTOMER_ID
确实有多个 X__INSDATE
,因此结果中的记录将是不同的。如果你只需要第一次约会,那么不要使用 DISTINCT
和 ORDER BY
,而是尝试 select for MIN(X__INSDATE)
并使用 GROUP BY CUSTOMER_ID
.
第一次在这里发帖,希望一切顺利
我尝试使用 Oracle SQL Developer 进行查询,其中 returns 来自 table 的 customer_ID 以及来自另一个的付款时间。我很确定问题出在我的逻辑流程中(我使用 SQL 已经很长时间了,而且它又回到了学校,所以我有点生疏了)。我想将 ID 列为 DISTINCT 和 ORDER BY 日期 ASCENDING,因此只会显示第一个日期。
然而,返回的 table 在某些情况下包含两次或更多次相同的 ID。我什至在滚动浏览时发现了几次相同的 ID 和相同的日期。
如果您想了解更多请询问!
SELECT DISTINCT
FIRM.customer.CUSTOMER_ID,
FIRM.account_recharge.X__INSDATE FELTOLTES
FROM
FIRM.customer
INNER JOIN FIRM.account
ON FIRM.customer.CUSTOMER_ID = FIRM.account.CUSTOMER
INNER JOIN FIRM.account_recharge
ON FIRM.account.ACCOUNT_ID = FIRM.account_recharge.ACCOUNT
WHERE
FIRM.account_recharge.X__INSDATE BETWEEN TO_DATE('14-01-01', 'YY-MM-DD') AND TO_DATE('14-12-31', 'YY-MM-DD')
ORDER
BY FELTOLTES
SELECT DISTINCT FIRM.customer.CUSTOMER_ID, FIRM.account_recharge.X__INSDATE FELTOLTES
Distinct 同时应用于两个列,这意味着您将从两个列中获得 值集 的不同 ROW列。所以,基本上不同的是指 select 列表中的所有列。
相当于select没有distinct但有group by子句。
意思是,
select distinct a, b....
相当于,
select a, b...group by a, b
如果您想要所需的输出,则 CONCATENATE 列。然后,distict 将处理单个串联的结果集。
你的 select 是这样工作的,因为 CUSTOMER_ID
确实有多个 X__INSDATE
,因此结果中的记录将是不同的。如果你只需要第一次约会,那么不要使用 DISTINCT
和 ORDER BY
,而是尝试 select for MIN(X__INSDATE)
并使用 GROUP BY CUSTOMER_ID
.