gpt4 book ai didi

mysql - SQL使用同一查询从同一组数据中获取多个结果计数

转载 作者:行者123 更新时间:2023-11-29 10:09:53 26 4
gpt4 key购买 nike

我正在处理产品数据,其中一部分具有以下结构(我们称之为product_serials):

Table Structure

该表是产品序列号的集合。 snapped 字段通过序列号确定特定产品是否已被购买。我尝试使用单个 SQL 查询查询表,以获取同一 product_id两者所有序列以及所有未购买的序列的计数。到目前为止,使用 COUNT(ps1.id) AND COUNT(ps2.id) ... WHERE ps2.snapped = FALSE 似乎不起作用,它仍然对所有连续剧和未购买的连续剧计算相同的值连续剧,甚至夸大了数量,所以我肯定做错了什么。

我可能会错过什么?

根据请求进行 My SQL 查询:

SELECT pd.id AS product_id, pd.description, 
COUNT(pds.id) AS total, COUNT(pds2.id) AS available
FROM products pd
LEFT JOIN product_serials pds ON pds.product_id = pd.id
LEFT JOIN product_serials pds2 ON pds2.product_id = pd.id
WHERE pds2.snapped = FALSE
GROUP BY pd.id
ORDER BY pd.date_added DESC

最佳答案

在这里,您连接表(甚至将它们相乘),然后对两个表应用 WHERE 条件。

我建议如下:

SELECT product_id, count(serial), count(unpurchased)
FROM (SELECT product_id, serial,
CASE WHEN snapped THEN NULL ELSE 1 END AS unpurchased)
GROUP BY product_id

关于mysql - SQL使用同一查询从同一组数据中获取多个结果计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51187040/

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