Oracle/SQL 计算按公共列分组的多个列

发布于 2024-10-14 10:51:30 字数 517 浏览 2 评论 0原文

我带着另一个 Oracle 查询回来了。我想要做的是对按公共字段分组的多个列进行计数。到目前为止我已经完成了一半。因此,给出下表,

THING ACTION
--------------
T1  _A_
T1  _A_
T1  _B_
T2  _A_
T2  _B_

我有这个查询

select    THING,
    count(ACTION) as "A"
 from  <table>
 where  ACTION = '_A_'
 group by THING

,结果是

THING A
----------
T1    2
T2    1

我想看到的是这个,

THING A B
--------------
T1    2   1
T2    1   1

但我不确定如何做到这一点。有什么想法吗?

谢谢!

I'm back with yet another Oracle query. What I want to do is do counting on multiple columns grouped by a common field. I have half of this done so far. So given the following table

THING ACTION
--------------
T1  _A_
T1  _A_
T1  _B_
T2  _A_
T2  _B_

I have this query

select    THING,
    count(ACTION) as "A"
 from  <table>
 where  ACTION = '_A_'
 group by THING

Which results in

THING A
----------
T1    2
T2    1

What I would like to see though is this

THING A B
--------------
T1    2   1
T2    1   1

But I'm not certain how to do that. Any ideas?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

请远离我 2024-10-21 10:51:31
select thing,
       count(case action when '_A_' then 1 end) as a,
       count(case action when '_B_' then 1 end) as b
from <table>
group by thing

sum(case action when '_A_' then 1 else 0 end) 如果您愿意

select thing,
       count(case action when '_A_' then 1 end) as a,
       count(case action when '_B_' then 1 end) as b
from <table>
group by thing

or sum(case action when '_A_' then 1 else 0 end) if you prefer

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文