gpt4 book ai didi

mysql - 如何根据同一张表上另一个查询的结果集执行查询?

转载 作者:可可西里 更新时间:2023-11-01 08:35:39 25 4
gpt4 key购买 nike

可以对多个项目进行请求,唯一的键是代理项 request_id

我有以下查询返回 9 位电话号码的结果集

SELECT phone_number FROM purchases
WHERE item_type = 'popcorn'
GROUP BY phone_number;

然后我想检索每个 phone_number 请求的每个 DISTINCT item_type 的列表,不是“爆米花”和然后 GROUP BY item_type。 IE 我想知道客户倾向于购买哪些类似产品。

期望的结果集可能看起来像这样

item        COUNT(*)
pretzels 200
chips 150
crackers 125
… …

在这种情况下,购买爆米花和椒盐卷饼的 phone_number 的数量是 200(我对此值感兴趣)。购买爆米花的人购买椒盐卷饼的总数为 1,000,但这不是我感兴趣的值(value)。

我如何创建一个仅指定 item_type 的查询并检索如上所示的显示客户还购买的项目的结果?

此外 - 如果有人可以帮我制作一个更描述性的标题,我将不胜感激。

编辑

这是表格

CREATE TABLE purchases(
request_id BIGINT NOT NULL auto_increment,
phone_number INT(9) NOT NULL,
item_type VARCHAR(256) NOT NULL,
PRIMARY KEY(request_id)
);

编辑

根据此数据请求所需的输出 http://www.sqlfiddle.com/#!2/23236/2

item        COUNT(*)
cc 1
notpopcorn 1

最佳答案

<罢工>

<罢工>

I would like to then retrieve a list of of every DISTINCT item_type requested by each of those phone_number that was not 'popcorn' and then GROUP BY that item_type. IE I want to know what similar products customers tend to buy.

试试这个:

SELECT item_type as item, COUNT(*)
FROM purchases
WHERE phone_number NOT IN (SELECT DISTINCT phone_number
FROM purchases
WHERE item_type = 'popcorn')
GROUP BY item_type;

SQL Fiddle Demo

<罢工>

更新:试试这个:

SELECT item_type as item, COUNT(*)
FROM purchases
GROUP BY item_type, phone_number
HAVING phone_number IN (SELECT DISTINCT phone_number
FROM purchases
WHERE item_type = 'popcorn')
AND item_type <> 'popcorn';

Updated SQL Fiddle Demo

关于mysql - 如何根据同一张表上另一个查询的结果集执行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13356995/

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