首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql按条件分组

Mysql按条件分组
EN

Stack Overflow用户
提问于 2013-04-16 08:04:32
回答 1查看 5.2K关注 0票数 2

我想申请GROUP BY的条件。

当条件city_id != 0为真时,将列表分组。否则就是正常的名单。

我使用了这个查询:

代码语言:javascript
运行
复制
(
    SELECT city_id, sum(sales) as counts
    FROM product_sales
    WHERE city_id !=0     
    GROUP BY city_id
)
UNION
(
    SELECT city_id, sales 
    FROM product_sales  
    WHERE city_id =0     
    ORDER BY sales_id 
)

任何人都可以帮助我避免使用UNION,并在一个查询中获取列表?

EN

回答 1

Stack Overflow用户

发布于 2013-04-16 08:12:24

一个想法:当city_id不是零的时候,模仿一个随机的唯一值与UUID()进行分组。因此,使用city_id = 0的每一行都不会被分组。

代码语言:javascript
运行
复制
select city_id, sum(sales)
from product_sales
group by
  case when city_id = 0
  then UUID()
  else city_id
  end

SQL Fiddle

UUID被设计成一个在空间和时间上是全局唯一的数字。对UUID()的两个调用将生成两个不同的值,即使这些调用是在两台互不连接的计算机上执行的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16031760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档