Mysql按条件分组
我想为Mysql按条件分组,mysql,sql,Mysql,Sql,我想为分组依据应用条件 当条件city\u id!=如果0为真,请将列表分组。否则正常列表 我使用此查询的目的是: ( 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_i
分组依据
应用条件
当条件city\u id!=如果0
为真,请将列表分组。否则正常列表
我使用此查询的目的是:
(
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
)
任何人都可以帮助我避免使用
联合
,并在一次查询中获得列表?一个想法:按分组,当城市id
不为零时,模拟一个随机的唯一值进行分组。因此,city\u id=0
的每一行都不会分组
select city_id, sum(sales)
from product_sales
group by
case when city_id = 0
then UUID()
else city_id
end
UUID被设计为在空间和空间上全局唯一的数字
时间对UUID()的两个调用将生成两个不同的
值,即使这些调用是在两台单独的计算机上执行的
它们彼此不相连
一个想法是:groupby
city\u id
当它不为零时,否则模拟一个随机的唯一值进行分组。因此,city\u id=0
的每一行都不会分组
select city_id, sum(sales)
from product_sales
group by
case when city_id = 0
then UUID()
else city_id
end
UUID被设计为在空间和空间上全局唯一的数字
时间对UUID()的两个调用将生成两个不同的
值,即使这些调用是在两台单独的计算机上执行的
它们彼此不相连
当城市id=0时
应该是当城市id为0时
@hjpotter92:你确定吗?我重新阅读了这个问题,我非常确定条件是正确的。选择city\u id,sum(sales)作为product\u sales WHERE city\u id的计数=0如果城市与0不同,则我们按城市id分组,这是OP所问的问题。这个答案似乎是我的解决方案,但像这样使用UUID会有一些缺点吗?当城市id=0时
应该是当城市id为0时
@hjpotter92:你确定吗?我重新阅读了这个问题,我非常确定条件是正确的。选择city\u id,sum(sales)作为product\u sales WHERE city\u id的计数=0如果城市与0不同,则我们按城市id分组,这是OP所问的问题。这个答案似乎是我的解决方案,但像这样使用UUID是否存在一些缺点???UNION有什么问题?UNION有什么问题?