mysql需要几个distinct,MySQL SELECT多个DISTINCT COUNT

2023-11-04

Here is what I'm trying to do. I have a table with user assessments which may contain duplicate rows. I'm looking to only get DISTINCT values for each user.

In the example of the table below. If only user_id 1 and 50 belongs to the specific location, then only the unique video_id's for each user should be returned as the COUNT. User 1 passed video 1, 2, and 1. So that should only be 2 records, and user 50 passed video 2. So the total for this location would be 3. I think I need to have two DISTINCT's in the query, but am not sure how to do this.

+-----+----------+----------+

| id | video_id | user_id |

+-----+----------+----------+

| 1 | 1 | 1 |

| 2 | 2 | 50 |

| 3 | 1 | 115 |

| 4 | 2 | 25 |

| 5 | 2 | 1 |

| 6 | 6 | 98 |

| 7 | 1 | 1 |

+-----+----------+----------+

This is what my current query looks like.

$stmt2 = $dbConn->prepare("SELECT COUNT(DISTINCT user_assessment.id)

FROM user_assessment

LEFT JOIN user ON user_assessment.user_id = user.id

WHERE user.location = '$location'");

$stmt2->execute();

$stmt2->bind_result($video_count);

$stmt2->fetch();

$stmt2->close();

So my query returns all of the count for that specific location, but it doesn't omit the non-unique results from each specific user.

Hope this makes sense, thanks for the help.

解决方案

The query below joins a sub-query that fetches the distinct videos per user. Then, the main query does a sum on those numbers to get the total of videos for the location.

SELECT

SUM(video_count)

FROM

user u

INNER JOIN

( SELECT

ua.user_id,

COUNT(DISTINCT video_id) as video_count

FROM

user_assessment ua

GROUP BY

ua.user_id) uav on uav.user_id = u.user_id

WHERE

u.location = '$location'

Note, that since you already use bindings, you can also pass $location in a bind parameter. I leave this to you, since it's not part of the question. ;-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql需要几个distinct,MySQL SELECT多个DISTINCT COUNT 的相关文章

  • 第5章 使用图像(html)

    第5章 使用图像 html 目录标题 5 1 有序列表 5 1 1 ol标签 5 1 2 有序列表的序号类型type 5 1 3 有序列表的起始数值start 5 2 无序列表 5 3 定义列表dl 5 4 列表的嵌套 5 5 练习题 5
  • windows 8 pro vl_微软MSDN原版Windows10/8/7/XP系统镜像与office下载地址大全

    相信如今大多数的用户开始讨厌GHOST形式安装操作系统 而使用微软MSDN原版系统进行安装 原因是网上分享的GHOST系统已经形成了一个黑色产业链 由于系统被删减过 众多功能缺失 并捆绑了众多无用的软件程序 还强制修改浏览器主页等让人讨厌的
  • 深度学习边缘检测 HED 训练自己的数据

    深度学习边缘检测 HED 训练自己的数据 数据集制作 使用labelme标注 选择lineStrip 线条束 标注 生成json文件 之后使用批量处理脚本将json文件转为边缘数据集 具体过程如下 首先将所有的json文件放入一个文件夹内
  • 云计算与海量数据处理技术

    云计算提供了一种对资源 按需索取服务 的能力 确保了使用时间与需要时间的完全一致 从而建立了一种分布式 高效率 低成本的IT商业模式 正是这些特点 使云计算成为IT发展的潮流与趋势 为解决广大系统设计人员深入研究与开发云计算系统的需要 培训
  • 小美的数组操作2---牛客周赛 Round 11

    注意给a 0 赋一个最小值 include
  • 1004 成绩排名 (20 分)

    1004 成绩排名 20 分 读入 n gt 0 名学生的姓名 学号 成绩 分别输出成绩最高和成绩最低学生的姓名和学号 输入格式 每个测试输入包含 1 个测试用例 格式为 第 1 行 正整数 n 第 2 行 第 1 个学生的姓名 学号 成绩
  • WEB应用防火墙安全技术要求与测试评价方法

    信息安全技术 WEB应用防火墙安全技术要求与测试评价方法 范围 本标准规定了WEB应用防火墙的安全功能要求 自身安全保护要求 性能要求和安全保证要求 并提供了相应的测试评价方法 本标准适用于WEB应用防火墙的设计 生产 检测及采购 规范性引
  • Android自定义View-Path的详细介绍

    一 构造方法 1 Path path new Path 空的构造方法 2 Path path new Path Path src 创建一个新的路径 并从src路径获取内容赋值给新的路径 二 Path常用的一些方法 分类 Path方法 备注
  • Verilog学习之位拆分与运算设计

    文章目录 前言 一 题目描述 二 实现思路 1 题意分析 2 状态分析 三 代码展示 总结 前言 今天我们做的是第五道题 位拆分与运算 这道题比较简单 我们只需要用到状态机的思想和 运算以及数据锁存的问题 接下来就让我们看看如何写这道题 位
  • Kibana server is not ready yet

    Kibana server is not ready yet 这个错误通常是由于Kibana服务无法连接到Elasticsearch引起的 这可能是由于以下原因之一 1 Elasticsearch没有启动 请确保Elasticsearch正
  • vivado时序分析之set_input_delay(三)

    本篇用vivado timing constraints wizard来进行set input delay的约束 set input delay界面如图一所示 包括interface clock synchronous alignment
  • Python第三方库在命令行使用pip安装完成之后只能使用idle,而不能pycharm的解决方法

    先使用pip install requests 或者其他模块也可以 然后如图 就可以看到这些模块被安装的位置 看到安装的一些模块都在这里 直接把site packages整个文件夹Ctrl C一下 然后找到Pycharm的项目文件夹 就是你
  • uniapp各个页面监听

    当前页面在退出时 uni emit zxpg zxpg res tips uni navigateBack 返回上一个页面 在上一个页面的onShow uni on zxpg data gt console log 接收事件test成功 d
  • Spring Boot 创建RESTful Web Service

    1 介绍 本篇将使用Spring Boot创建一个简单restful风格web服务 接受HTTP GET请求 http localhost 8080 greeting 响应体 respond 为一个JSON字符串 id 1 content
  • 解决网页不能复制

    按f12 console点圆圈斜杠那个图标 输入 document body contentEditable true
  • Spring框架概述 --- AOP, 拦截器, 过滤器

    Spring框架概述 AOP 拦截器 过滤器 AOP概念 过滤器 Filter 拦截器 Interceptor Spring AOP AOP Example Log Aspect 执行顺序是 过滤器 gt 拦截器 gt AOP AOP概念
  • NLP学习(四)规则分词-正向、逆向和双向最大匹配算法的中文分词-python3实现

    规则分词 规则分词是一种机械分词方法 主要通过维护词典 在切分语句时将语句的每个字符串和词表中的词逐一匹配找到则切分 找不到则不切分 具体包括正向最大匹配法 逆向最大匹配法和双向最大匹配法 正向最大匹配 算法描述 从左向右取待切分汉语句的m
  • 小程序包体积压缩优化,下降500k起步

    由于公司小程序包体积过大 已经达到1 9m了 微信定义小程序单个代码包 主包 分包 上限为2m 所以小程序该减肥了 如果你按我的步骤都做了 体积没有减少 ok 来打我 文章目录 第一步 最直接的方式 图片优化 第二步 优化体积主要方法 分包
  • VMware虚拟机安装Ubuntu教程

    目录 一 软件准备 二 安装VMware 三 安装Ubuntu系统 3 1 创建新的虚拟机 3 2 客户机操作系统安装 3 3 客户机操作系统选择 3 4 命名虚拟机和存储位置更改 3 5 处理器配置 3 6 虚拟机内存配置 3 7 网络和

随机推荐

  • React 状态提升 温度转换项目

    使用 create react app 快速构建 React 开发环境 create react app 是来自于 Facebook 通过该命令我们无需配置就能快速构建 React 开发环境 create react app 自动创建的项目
  • Jmagic的常用方法

    1 Jmagic的基本安装和使用 1 下载和安装文件 下载安装包 ImageMagick 6 8 0 4 Q16 windows 和jmagick win 6 3 9 Q8 默认安装在C Program Files ImageMagick
  • React Hooks 从认识到使用_hooks优缺点

    前言 Hook 是 React 16 8 的新增特性 它是完全可选的 并且100 向后兼容 它可以让你使用函数组件的方式 运用类组件以及 react 其他的一些特性 比如管理状态 生命周期钩子等 从概念上讲 React 组件一直更像是函数
  • java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例

    本章介绍DataOutputStream 我们先对DataOutputStream有个大致认识 然后再深入学习它的源码 最后通过示例加深对它的了解 转载请注明出处 http www cnblogs com skywang12345 p io
  • GDI+学习笔记1- 概述

    一 图形概述 Windows 窗体 GDI 是构成 Microsoft Windows 操作系统子系统的应用程序编程接口 API GDI 负责在屏幕和打印机上显示信息 顾名思义 GDI 是 GDI 的后续 后者是包含在 Windows 早期
  • sql连表查询简单方式总结

    首先新建两张表 名为student的表1 名为class的表2 一 外连接 外连接可分为 左连接 右连接 全然外连接 1 左连接 left join 左外连接包括left join左表所有行 假设左表中某行在右表没有匹配 则结果中相应行右表
  • 《TypeScript》 - 变量声明

    变量是一种使用方便的占位符 用于引用计算机内存地址 我们可以把变量看做存储数据的容器 TypeScript 变量的命名规则 变量名称可以包含数字和字母 除了下划线 和美元 符号外 不能包含其他特殊字符 包括空格 变量名不能以数字开头 变量使
  • 利用ChatGPT绘制思维导图——以新能源汽车竞品分析报告为例

    随着人们对环境保护的日益关注和传统燃油汽车的限制 全球范围内对新能源汽车的需求不断增长 新能源汽车市场的激烈竞争使得了解各个竞品的特点和优劣成为关键 然而 针对这一领域的详尽竞品分析却常常需要大量时间和精力 在此背景下 人工智能技术的迅速发
  • 子网掩码、ip地址、主机号、网络号、网络地址、广播地址

    几句话掌握子网掩码 ip地址 主机号 网络号 网络地址 广播地址 191 172 16 10 33 27 中的 27也就是说子网掩码是255 255 255 224 即27个全1 2 从子网掩码255 255 255 252得出其网络位为3
  • SpringBoot导入Thymeleaf

    SpringBoot导入Thymeleaf 模版引擎 前端交给我们的页面 是html页面 如果是我们以前开发 我们需要把他们转成jsp页面 jsp好处就是 当我们查出一些数据转发到JSP页面以后 我们可以用jsp轻松实现数据的显示 及交互等
  • 【Linux】信号

    文章目录 1 信号基础 1 1信号的原理 2 信号的产生 2 1signal函数 2 2kill指令和函数 2 3信号产生的方式 2 3 1键盘产生 2 3 2由系统向进程发送信号 2 4由软件条件产生信号 2 4 1alarm函数 2 2
  • PCM接口详细介绍--TDM方式

    1 概述 PCM Pulse Code Modulation 是通过等时间隔 即采样率时钟周期 采样将模拟信号数字化的方法 图为4 bit 采样深度的PCM数据量化示意图 PCM数字音频接口 说明接口传输的音频数据是通过PCM方式采样得到的
  • Oracle Flashback之flashback table

    一 Flashback Table功能描述 将数据表恢复到之前的一个时间点或SCN号 注意 该功能将改变当前表及附属对象统一闪回到之前的一个状态 二 需要修改的系统参数 undo management 参数需要是 AUTO 保证回滚段使用模
  • 简易的解决方式linker command failed with exit code 1 (use -v to see invocation)

    今天在打包上线的时候遇到了一个大坑 足足让我解决了三个小时来找这个问题 linker command failed with exit code 1 use v to see invocation 遇到这个问题先不要慌 不用纠结是不是自己改
  • 磁共振原理复习

    1 Basic principles 1 1 频率和磁场的关系 B omega gamma B B 1 2 自旋产生磁矩 在B0场下做拉莫进动 1 3 外加脉冲 90 脉冲 产生横向磁矩 进而可以
  • ChatGPT 给我们 带来的哲学思考

    ChatGPT 给我们 带来的哲学思考 ChatGPT 是一种基于 GPT 3 模型的聊天机器人 它可以与人类进行自然 流畅 有趣的对话 ChatGPT 的出现 不仅是人工智能技术的一次重大突破 也是对人类社会和文化的一次挑战 ChatGP
  • Java 集合和流

    目录 一 从集合中获取流 二 流处理阶段 2 1 Stream filter 2 2 Stream map 2 3 Stream collect 2 4 Stream min 和 Stream max 2 5 Stream count 2
  • 回流(Reflow)与重绘(Repaint)

    1 回流与重绘 1 回流 当我们对 DOM 的修改引发了 DOM 几何尺寸的变化 比如修改元素的宽 高或隐藏元素等 时 浏览器需要重新计算元素的几何属性 其他元素的几何属性和位置也会因此受到影响 然后再将计算的结果绘制出来 这个过程就是回流
  • 量化投资学习-5:股票与美女5-美女的容貌:K线图

    股票的K线图 就是股票的价格走势图 股票的价格走势图 就像美女的容貌 有漂亮的 也有平常的 也有丑的 漂亮的容貌 有些是天生丽质 有些是靠化妆化出来的 股票漂亮的K线图也一样 1 有些是优质股 股价与质地同步 是集才华与美貌于一身的美女 这
  • mysql需要几个distinct,MySQL SELECT多个DISTINCT COUNT

    Here is what I m trying to do I have a table with user assessments which may contain duplicate rows I m looking to only