gpt4 book ai didi

mysql - 如何在MySQL中计算具有特定值的行(ID)并排除相同ID是否具有其他值?

转载 作者:行者123 更新时间:2023-11-29 15:46:45 24 4
gpt4 key购买 nike

我需要统计 Field_ID“134”但没有其他 Field_ID 的公司;在我的示例中,ID 为 2 的公司只有 1 个字段“134”,所以我需要将其计算在内,但 ID 为 3 的公司有字段“134”,但也有其他字段,所以我想将这一字段排除在计算之外。

Table ID        Company_ID  Field_ID
1 1 130
2 1 131
3 2 134
4 3 134
5 3 137
6 3 140

MySQL 工作台

SELECT count(distinct id) FROM company
where field_id = 1

我需要统计 Field_ID“134”但没有其他 Field_ID 的公司;在我的示例中,ID 为 2 的公司只有 1 个字段“134”,所以我需要将其计算在内,但 ID 为 3 的公司有字段“134”,但也有其他字段,所以我想将这一字段排除在计算之外。

预期结果应为“1”计数

Table ID        Company_ID  Field_ID
1 1 130
2 1 131
3 2 134
4 3 134
5 3 137
6 3 140

最佳答案

您可以按 Company_ID 进行分组并计算 Field_ID 的数量,然后仅选择计数 = 1 的那些:

架构 (MySQL v5.7)

CREATE TABLE test (
`Table ID` INTEGER,
`Company_ID` INTEGER,
`Field_ID` INTEGER
);

INSERT INTO test
(`Table ID`, `Company_ID`, `Field_ID`)
VALUES
(1, 1, 130),
(2, 1, 131),
(3, 2, 134),
(4, 3, 134),
(5, 3, 137),
(6, 3, 140);
<小时/>

查询#1

SELECT t.Company_ID
FROM test t
GROUP BY t.Company_ID
HAVING COUNT(t.Field_ID) = 1
AND MAX(t.Field_ID) = 134;

输出

| Company_ID |
| ---------- |
| 2 |
<小时/>

View on DB Fiddle

关于mysql - 如何在MySQL中计算具有特定值的行(ID)并排除相同ID是否具有其他值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56970303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com