【问题标题】:Oracle SQL - Count on one column and display information from other column's/recordsOracle SQL - 计算一列并显示来自其他列/记录的信息
【发布时间】:2021-11-10 21:32:25
【问题描述】:

我是 SQL 的新手,所以这可能是一个愚蠢的问题。我想在 TR_VALUE.NEW VALUE 中查找重复值,并显示其他记录中其他列的其他列信息。例如。 TR_VALUE.OLD_VALUE。

如果我删除 TR_VALUE.OLD_VALUE,以下查询运行良好,但我想显示有关重复项的其他数据。

SELECT  
    "TR_VALUE"."NEW_VALUE", "TR_VALUE"."OLD_VALUE", 
    COUNT("TR_VALUE"."NEW_VALUE") 
FROM
    (("DB1"."WORKORDER" "WORKORDER" 
LEFT OUTER JOIN 
    "DB1"."TR_VALUE" "TR_VALUE" ON "WORKORDER"."FG_LOTNO" = "TR_VALUE"."NEW_VALUE") 
LEFT OUTER JOIN 
    "DB1"."STANDARD" "STANDARD" ON "WORKORDER"."STANDARD_ID" = "STANDARD"."ID") 
LEFT OUTER JOIN 
    "DB1"."TR_BATCH" "TR_BATCH" ON "TR_VALUE"."TR_BATCH_ID" = "TR_BATCH"."ID"
GROUP BY 
    "TR_VALUE"."NEW_VALUE"
HAVING 
    COUNT("TR_VALUE"."NEW_VALUE") > 1

【问题讨论】:

  • 那么请显示一些示例数据以及您的结果应该是什么样子。如果 new_value 123 被找到四次,则最多有四个不同的旧值。你想如何显示它们?
  • 请让您的查询可读。全部大写使阅读变得困难。没有缩进让阅读变得困难。您也可以删除所有那些讨厌的双引号。您可以使用简短的助记表别名,例如w 代表工作订单,v 代表 tr_value,s 代表标准。只有我吗?我发现带括号的连接很难阅读。它们在您的查询中完全是多余的。我会删除它们。最后突出显示 SQL 语句,使用{} 按钮将其格式化为代码。
  • DBMS - Oracle 11g。很抱歉查询的格式,我从 Crystal Reports 导出了查询,它把所有内容都用大写。我会解决的。
  • 我想并排显示包含重复项的新值和旧值。因此,对于 4 个重复项,将有 4 个不同的旧值。
  • 好的,请告诉我们。组成几个示例行,然后显示您希望在结果中包含的行和列。如前所述,每个新值可以有很多旧值,那么这应该如何准确地显示在结果中?查询结果是一个表。该结果表应有多少列?它们将包含什么?

标签: sql oracle count


【解决方案1】:

如果您希望查询正常工作,只需在 group by 子句中再添加 1 列 -

SELECT  
    "TR_VALUE"."NEW_VALUE",
    "TR_VALUE"."OLD_VALUE", 
    COUNT("TR_VALUE"."NEW_VALUE") 
FROM
    (("DB1"."WORKORDER" "WORKORDER" 
LEFT OUTER JOIN 
    "DB1"."TR_VALUE" "TR_VALUE" ON "WORKORDER"."FG_LOTNO" = "TR_VALUE"."NEW_VALUE") 
LEFT OUTER JOIN 
    "DB1"."STANDARD" "STANDARD" ON "WORKORDER"."STANDARD_ID" = "STANDARD"."ID") 
LEFT OUTER JOIN 
    "DB1"."TR_BATCH" "TR_BATCH" ON "TR_VALUE"."TR_BATCH_ID" = "TR_BATCH"."ID"
GROUP BY 
    "TR_VALUE"."NEW_VALUE",
    "TR_VALUE"."OLD_VALUE"
HAVING 
    COUNT("TR_VALUE"."NEW_VALUE") > 1

【讨论】:

    猜你喜欢
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多