首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询以组合一些行

SQL查询以组合一些行
EN

Stack Overflow用户
提问于 2014-01-22 07:57:59
回答 2查看 58关注 0票数 0

当前查询的输出如下:

代码语言:javascript
复制
item    number
car     5
bus     4
bicycle 7
kaikias 10

但是我需要把这个项目按它是否是机动车辆分组。但是数据库中没有这些信息。我应该解释一下,在查询中,汽车是机动车辆。预期产出如下:

代码语言:javascript
复制
item   number
motor  9
others 17

如何通过不存在于DB中的行的某些属性组合行?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-22 08:02:00

正确的方法是为这些信息创建一个新的表,加入表并按类别分组。

否则,您可以对in和case进行类似的操作,但它不能很好地扩展,而且很麻烦。

如下所示:

代码语言:javascript
复制
select
  case when item in ('motor1', 'motor2', '...') then 'motors' else 'others' end item,
  count(*) number
from
  table
group by
  case when item in ('motor1', 'motor2', '...') then 'motors' else 'others' end
票数 2
EN

Stack Overflow用户

发布于 2014-01-22 08:02:28

您只能根据数据库中的信息查询和分组项。你的数据库不可能自己知道,汽车有马达,自行车没有马达。

如果可能的话,我建议您添加一个新列来保存这些信息。

编辑:

如果您只想指示已知的值,可以这样做:

代码语言:javascript
复制
SELECT CASE WHEN (item = 'car' OR item = 'bus') THEN 'motor' ELSE 'others' END as item, ...
FROM yourTable
...

第一个参数是您的条件,第二个参数是true的值,第三个参数是false的值。

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

https://stackoverflow.com/questions/21277216

复制
相关文章

相似问题

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