gpt4 book ai didi

MySQL - 只计算连接中的一个不同值

转载 作者:行者123 更新时间:2023-11-29 23:28:02 25 4
gpt4 key购买 nike

我有 5 张 table 。

auction, seller , auction_person,  person_company, quote

例如,对于一次拍卖(一名卖家),我在 auction_person 中有 4 个人(来自同一家公司),但并非所有人都有权报价。

auction_person
---------------
id, auction, seller, person, person_company, can_quote
-----------------------------------------------------
1 | 1 | 1| 1 | 3 | 1
2 | 1 | 1| 2 | 3 | 0
3 | 1 | 1| 3 | 3 | 1
4 | 1 | 1| 4 | 3 | 1

quote表中我有这样的东西

quote
------------
id,auction_person, auction, price,send_back, accepted
------------------------------------------------------
1 | 1 | 1 | 5$ | 1 | 0
1 | 4 | 1 | 2$ | 0 | 0

有些人引用了,有些人没有引用,有些引用已发送但仍未被接受。

我需要

   1. COUNT(quote)  WHERE send_back = 1
2. COUNT(accepted) WHERE send_back = 1
3. COUNT(auction)
WHERE seller = 1

但是,无论每家公司邀请了多少联系人(引用 send_back),它都应始终算作 1。

因此,如果卖家( id = 1 )邀请一家公司( seller_id = 1 )的 4 人,例如 3 人已报价( 2 人 send_back,1 人未 send_back ),则搜索公司的结果应如下所示.

auction   = 1
send_back = 1
accepted = 0

这可以仅在一个查询中完成吗?

最佳答案

我不明白,你有什么问题吗?

你的需求和你的结果不一样

what criteria of :
auction = 1 = COUNT(quote) WHERE send_back = 1
send_back = 1 = COUNT(send_back) WHERE send_back = 1
accepted = 0 = COUNT(accepted) WHERE send_back = 1



Select Sum(Case When IsNull(send_back, 0) = 1 Then 1 Else 0 End) as auction,
Sum(Case When IsNull(send_back, 0) = 1 Then 1 Else 0 End) as send_back,
Sum(Case When IsNull(accepted, 0) = 1 Then 1 Else 0 End) as accepted
from #auction_person a
Left Join #quote b
On b.auction = a.auction
And b.Auction_Person = a.Person
WHERE seller = 1

关于MySQL - 只计算连接中的一个不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26798699/

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