SQL 分组结果不相等

标签 sql t-sql postgresql

我正在使用 postgres,但我也了解 T-SQL,所以任何人能给我的任何答案我都将不胜感激并能够进行转换。我正在尝试对我的汽车销售公司进行查询。他们在美国各地销售汽车,主要在俄勒冈州和西澳州。我需要提供一份报告,允许我返回 OR 的新销售额和 Wa 的新销售额,然后我遇到的问题是非 OR 或 Wa 的所有其他州的销售额。所以现在我正在运行一个带有 group by 的联合,其中一个查询用于 WA,另一个语句用于 OR。我希望结果看起来非常简单,只有 3 行。 1 OR 1 WA 和第三行所有其他状态的组合。我不知道如何将不等于 OR 或 WA 组合成一个值。这可能吗?

感谢您花时间查看此内容

我的查询还将包括二手销售汽车,但一旦我弄清楚如何解决这个问题,我就可以整合它,这就是查询有多个联合的原因

这是我现在的查询:

SELECT buyerstate        AS "State", 
       Count(buyerstate) AS "Acura", 
       saletype          AS "N/U" 
FROM   lydeal 
WHERE  stocklocationid = '8' 
       AND buyerstate = 'OR' 
       AND saledate > '8/01/12' 
       AND saletype = 'N' 
GROUP  BY buyerstate, 
          stocklocationid, 
          saletype 
UNION 
SELECT buyerstate        AS "State", 
       Count(buyerstate) AS "Acura", 
       saletype          AS "N/U" 
FROM   lydeal 
WHERE  stocklocationid = '8' 
       AND buyerstate = 'OR' 
       AND saledate > '8/01/12' 
       AND saletype = 'U' 
GROUP  BY buyerstate, 
          stocklocationid, 
          saletype 
UNION 
SELECT buyerstate        AS "State", 
       Count(buyerstate) AS "Acura", 
       saletype          AS "N/U" 
FROM   lydeal 
WHERE  stocklocationid = '8' 
       AND buyerstate = 'WA' 
       AND saledate > '8/01/12' 
       AND saletype = 'N' 
GROUP  BY buyerstate, 
          stocklocationid, 
          saletype 
UNION 
SELECT buyerstate        AS "State", 
       Count(buyerstate) AS "Acura", 
       saletype          AS "N/U" 
FROM   lydeal 
WHERE  stocklocationid = '8' 
       AND buyerstate = 'WA' 
       AND saledate > '8/01/12' 
       AND saletype = 'U' 
GROUP  BY buyerstate, 
          stocklocationid, 
          saletype 

最佳答案

试试这个

SELECT CASE WHEN buyerstate IN ('OR','Wa') THEN buyerstate ELSE 'OTHER' END   AS "State", 
   Count(buyerstate) AS "Acura", 
   saletype          AS "N/U" 
FROM   lydeal 
WHERE  stocklocationid = '8' 
   AND saledate > '8/01/12' 
   AND saletype = 'N' 
GROUP  BY CASE WHEN buyerstate IN ('OR','Wa') THEN buyerstate ELSE 'OTHER' END, 
      stocklocationid, 
      saletype 

关于SQL 分组结果不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12164336/

相关文章:

带 Group By 子句的 SQL 逗号分隔行

php - MySQL 使用动态变量连接两个表

sql - 如何更新 SQL Server 中 ntext 列中的 XML 字符串?

mysql - SQL 将值更新为另一个表中的值

sql - 查询以在 SSRS 图表的事务表上设置固定月份

json - SQL修改并替换json字符串值

sql-server - 更新触发器后将旧记录插入另一个表

python - PostgreSQL 获取从主键到外键的序列值

sql - 使用来自三层嵌套表的聚合列创建 View

ruby - gem install pg 无法绑定(bind)到 libpq