Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql和中的不同vs CASE语句_Postgresql - Fatal编程技术网

Postgresql和中的不同vs CASE语句

Postgresql和中的不同vs CASE语句,postgresql,Postgresql,我有一个SQL查询,它使用DISTINCT汇总一类项目的成本,这些项目可以分组为集合,每个集合=1,并使用库存类型属性计算一次或全部成本。以下查询在很大程度上很好地总结了这些属性: (sum(distinct product_working_value_SET)+sum(product_working_value_WHOLE)) working_cost_category FROM (select case inventory_type when 'set' then prod

我有一个SQL查询,它使用DISTINCT汇总一类项目的成本,这些项目可以分组为集合,每个集合=1,并使用库存类型属性计算一次或全部成本。以下查询在很大程度上很好地总结了这些属性:

(sum(distinct product_working_value_SET)+sum(product_working_value_WHOLE)) working_cost_category

  FROM (select
      case inventory_type when 'set' then product_working_value else 0 end as product_working_value_SET,
      case inventory_type when 'whole' then product_working_value else 0 end as product_working_value_WHOLE
  )
当我有两套成本相同的不同设备时,问题就出现了;查询无法将其识别为独立的,并跳过它,并给出不准确的总和。我能使用的唯一可靠的区别是产品名称或产品id;在这种情况下,集合更有可能具有不同的命名。我是否可以对其进行修改,以说明这种特殊性水平

下面是一个示例类别数据集,其中包含报告值和预期值,集合应按一个计算:

        Name    Inventory Type  Working Cost $
    Blue & Gold King Bed Set    Set $480.00
    Blue & Gold King Bed Set    Set $480.00
    Floral Bed Set  Set $240.00
    King Blue and White Floral Bed Set  Set $240.00
    King Blue and White Floral Bed Set  Set $240.00
    King Orange Comforter Set   Set $168.00 <<< same price
    King Orange Comforter Set   Set $168.00
    King Orange Comforter Set   Set $168.00
    King Orange Comforter Set   Set $168.00
    King Orange Comforter Set   Set $168.00
    King Orange Comforter Set   Set $168.00
    Red Queen Set   Set $60.00
    Red Queen Set   Set $60.00
    Red Queen Set   Set $60.00
    White King Comforter Set    Set $168.00 <<< same price coincidentally again
    White King Comforter Set    Set $168.00
    White King Comforter Set    Set $168.00
    White King Comforter Set    Set $168.00
    White King Comforter Set    Set $168.00

working_cost_category: reported:          $990.00
                       audit calculation: $1158 (168 missing)

添加一些示例数据和预期结果来描述您所面临的问题。完整的内容有点怪异,因此我尽量使其简洁易懂。我会试试。你可能会重复你的问题:你想总结什么?您的数据示例表明,您所命名的product_name是唯一的键,在该键中,不同的实例可以通过在初始查询中未提及的数据中标记的标记来区分。你的初始查询中显示的产品(工作)值(价值)似乎来自于空谈,不知何故?清楚地说明你想要实现的目标将有助于其他人给出有用的答案。产品\工作\价值\整体在“从选择”部分的代码块中定义。为了避免计算重复集,DISTINCT跳过了定价相同的唯一集,我想纠正这一点。我知道了,您在我的评论后进行了更新。尽管如此,在子查询中创建两列只是为了将它们添加到外部查询中,这充其量也很奇怪。通常,这表明未显示的子查询可以得到显著改进,或者故事内容比您所说的要多。添加一些示例数据和预期结果来描述您所面临的问题。完整内容有点怪异,因此我尽量使其简洁易懂。我会试试。你可能会重复你的问题:你想总结什么?您的数据示例表明,您所命名的product_name是唯一的键,在该键中,不同的实例可以通过在初始查询中未提及的数据中标记的标记来区分。你的初始查询中显示的产品(工作)值(价值)似乎来自于空谈,不知何故?清楚地说明你想要实现的目标将有助于其他人给出有用的答案。产品\工作\价值\整体在“从选择”部分的代码块中定义。为了避免计算重复集,DISTINCT跳过了定价相同的唯一集,我想纠正这一点。我知道了,您在我的评论后进行了更新。尽管如此,在子查询中创建两列只是为了将它们添加到外部查询中,这充其量也很奇怪。通常,这表明未显示的子查询可以得到显著改进,或者故事比您所说的要多。