SELECT id, user_id, item_id
FROM questionnaire_answer_old_0
WHERE item_id IN (
    SELECT item_id
    FROM questionnaire_answer_old_0
    GROUP BY user_id, item_id
    HAVING COUNT(user_id) > 1 AND COUNT(item_id) > 1
);

上面提供的代码正常执行子查询.当try 运行整个查询时,会出现问题,这会导致没有响应和错误消息;它只显示为"查询正在进行中".'从子查询中删除GROUP BY允许查询正常执行.这是什么原因?

推荐答案

您可以使用窗口函数,这可能更有效.

HAVING COUNT(user_id) > 1 AND COUNT(item_id) > 1可能不会像你想的那样做,因为COUNT(someValue)只计算非空值的数量,而不是不同值的数量.

我试着猜测你的意图,看起来你想得到一个item_id的所有行,其中任何一个都是一个item_id, user_id的组的一部分,其中有多个行.所以你需要两个级别的分区.

SELECT id, user_id, item_id
FROM (
    SELECT
      *,
      COUNT(CASE WHEN count > 1 THEN 1 END) OVER (PARTITION BY user_id) AS hasCountGtThan1
    FROM (
        SELECT *,
          COUNT(*) OVER (PARTITION BY user_id, item_id) AS count
        FROM questionnaire_answer_old_0 qa
    ) qa
) qa
WHERE hasCountGtThan1 > 0;

Mysql相关问答推荐

同一类型对象之间的多对多关系

无法确定查询逻辑

避免多个SQL查询的重构代码

生成json数据并根据特定表的匹配条件进行过滤

列出每年最多产的三位作家

MySQL - 如何根据单列查找重复行?

如何在Mysql中使用With和Values

MySQL,递归 CTE.它如何以这种句法形式工作?

如何在 MYSQL 中使用多个表进行插值

用数字和字母对 VARCHAR 列进行排序

如何显示患者预约中的专业人员姓名?

更改整数时间到日期格式 MM/DD/YY,如 python 中的 datetime.fromtimestamp

如何在 Windows 上访问 xampp 的命令行

MySQL Workbench - 如何同步 EER 图

MySQL INSERT IF(自定义 if 语句)

如何存储重复日期牢记夏令时

如何将 MySQL 查询结果存储在另一个表中?

从另一个表中 Select 具有 id 的行

如何从邮箱地址中 Select 域名

MySQL CREATE TABLE 语句中的 PRIMARY KEY 定义