我有一张桌子(这是一张模拟桌子),
+------------+------+--------+
| Name | Code | Active |
+------------+------+--------+
| Sales | 55 | 1 |
| Sales | 55 | 0 |
| IT | 22 | 1 |
| Production | 33 | 1 |
| Production | 33 | 0 |
| Marketing | 77 | 0 |
| Marketing | 77 | 0 |
+------------+------+--------+
我想返回一份不同名称和代码的列表。但是,我想确定部门是否有效。因此,如果销售中有1
处于活动状态且0
处于活动状态,则它们处于活动状态,但是它们只有零,那么它们不是。
我尝试了各种方法并阅读了几十篇SO帖子,但没有取得任何进展。
我想要实现的输出是:
+------------+------+--------+
| Name | Code | Active |
+------------+------+--------+
| Sales | 55 | 1 |
| IT | 22 | 1 |
| Production | 33 | 1 |
| Marketing | 77 | 0 |
+------------+------+--------+
如何将Active
列的优先级设置为值1
,但如果具有相同代码的所有条目的值均为0
(例如营销),则仍会返回条目?
答案 0 :(得分:2)
GROUP BY
名称和代码,获取Active的最大值。 (假设0和1是活动列的可能值)
SELECT Name,Code,MAX(Active) active
FROM tablename
GROUP BY Name,Code