【问题标题】:How to eliminate the duplicate values generated by this code如何消除此代码生成的重复值
【发布时间】:2017-11-20 03:50:13
【问题描述】:

SELECT DISTINCT dia, nome, preco, produto 
FROM clientes, vendas, produtos 
WHERE id = 1 AND id_cliente = 1 AND id_cliente_produto = 1

【问题讨论】:

  • 什么重复?您的问题需要更多信息,例如样本数据和所需结果。
  • 避免使用旧的连接方法并查看您的语句,您的表中没有相交的记录。
  • 我添加了图片链接
  • 您的意思是相同的名称、价格和产品文字?
  • 是的,这段代码给了我两次结果

标签: sql select duplicates distinct


【解决方案1】:

当您选择不同时,重复项将被删除。但是,每一行的日期时间都不同,因此这些是不同的日期时间值 - 因此您无法删除重复项。您可以将 datetime 转换为 date 以获得每个行条目的相同日期值,然后采用 distinct 正确删除重复项。

以 SQL Server 为例:

SELECT DISTINCT CAST(dia as date) [Date], nome, preco, produto 
  FROM clientes, vendas, produtos 
 where id=1 and id_cliente=1 and id_cliente_produto=1

如果你也想要小时,它会是这样的:

SELECT DISTINCT CAST(dia as date) [Date], 
               ,DATEPART(HOUR, dia) [Hour]
               ,nome, preco, produto 
  FROM clientes, vendas, produtos 
 where id=1 and id_cliente=1 and id_cliente_produto=1

【讨论】:

  • 如果您保留小时数据,您将拥有 21 和 23 - 这些将是 PERNIAS 的不同记录。你需要正确解释你所追求的。花一些时间了解您的数据并正确解释您想要什么
  • @EmersonRibeiroSouzaAnjos 我已经为这个小时添加了一些东西。不确定这是否适合您。
  • 在我将 [] 删除到您的代码工作之前,我在 postgres 4 中没有工作,但现在即使这样也没有解决问题
  • 很抱歉,我是个新手
  • Postgres 不同...我认为您将不得不使用 extract 而不是 Datepart。我能做的最好的就是给link。为避免混淆,请务必在以后指定数据库产品,而不仅仅是 SQL 语言。
猜你喜欢
  • 2011-04-02
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
相关资源
最近更新 更多