计算一列中某个值的个数
📅 2026/7/10 2:07:11
👁️ 次浏览
忆之独秀 https://blog.csdn.net/lavorange/article/details/25004181这两天在参加阿里大数据竞赛进入第二赛季要用到不少的SQL语句现在才发现当时的数据库是白学了今天就根据具体的需求来整理一下。可以把需求整理成为一道简单的题目题目如下给定一个表t_alibaba_datauser_id brand_id type visit_datetime10944750 13451 0 060410944750 13451 2 060410944750 13451 2 072310944750 13451 0 080110944750 13451 0 051510944750 13451 0 070310944750 13451 0 062910944750 13451 0 081410944750 21110 0 042210944750 1131 0 0713… … … …其中user_id代表用户brand_id代表品牌type代表操作的类型0-点击1-购买2-收藏3-购物车visit_datetime即用户对品牌行为的时间(0415-0515,0516-0615,0616-0715,0716-0815四个月)。假设一共有10000条交易记录。现在有这样的需求即我现在需要对用户user_id对某一个品牌brand_id进行评分grade可以理解为用户对品牌的喜爱程度评分grade规则为用户对品牌不同类型type0,1,2,3的操作总数然后给这些总数乘以相应的权值grade w0*count(type0) w1*count(type1) w2*count(type2)w3*count(type3)。当然考虑到时间的因素可以对靠后时间的点击操作提高权重相对距离较远的点击操作降低权重那么w0*count(type0)可以改写成w0*( 1*count(type0 and 0716visit_datatime0815) 0.8*count(type0 and 0616visit_datatime0715) 0.6*count(type0 and 0516visit_datetime0615) 0.4*count(type0 and 0415visit_datetime0515)).现在就是要创建一个表user_brand_gradeuser_id,brand_id,grade按照grade降序排列以便找到前1000个user_id,brand_id对。Step1首先不考虑时间的因素首先要找到用户user_id对于某个品牌brand_id某种操作type0/1/2/3的总次数。SELECT user_id , brand_id , count(type0) as type0 ,count(type1) as type1 , count(type2) as type2 ,count(type3) as type3 FROM t_alibaba_data t where visit_datetime 415 visit_datetime 715 group by user_id,brand_id;结果当我这么写完之后我发现type0type1type2type3的值都是一样的。这非常不合理才知道这么写是有问题的。SQL语句count()的用法http://www.w3school.com.cn/sql/sql_func_count.asp可见count只能计算某一列的总数目或者某一列符合一个条件的总数目但不能计算某列符合多个条件的相应数目。Step2那么修改count成为sum加上type的条件可以做出相应的选择。SELECT user_id , brand_id , sum(type0) as type0, sum(type1) as type1, sum(type2) as type2, sum(type3) as type3 FROM t_alibaba_data t where visit_datetime 515 visit_datetime 815 group by user_id ,brand_id;结果SQL语句sum()的用法http://www.w3school.com.cn/sql/sql_func_sum.aspsum中是可以加表达式的因此可以加上type的相应值。Step3此时不禁要想如果当type0的时候要根据visit_datetime选择不同的值怎么办在此要用到case进行条件的选择。那么就可以重写Step2的SQL语句。SELECT user_id , brand_id , sum(case when type0 then 1 else 0 end) as type0, sum(case when type1 then 1 else 0 end) as type1, sum(case when type2 then 1 else 0 end) as type2, sum(case when type3 then 1 else 0 end) as type3 FROM t_alibaba_data t group by user_id , brand_id ;结果应该和上图相同Step4用case增加时间上的判断select * ,(type0type1type2type3) as grade from ( SELECT user_id , brand_id , sum(case when type0 visit_datetime 801 visit_datetime815 then 10 when type0 visit_datetime 716 visit_datetime731 then 8 when type0 visit_datetime 701 visit_datetime715 then 6 when type0 visit_datetime 616 visit_datetime630 then 4 when type0 visit_datetime 601 visit_datetime615 then 2 when type0 visit_datetime 516 visit_datetime531 then 1 else 0 end) as type0, sum(case when type1 then 1 else 0 end) as type1, sum(case when type2 then 2 else 0 end) as type2, sum(case when type3 then 3 else 0 end) as type3 FROM t_alibaba_data t group by user_id , brand_id order by type0 desc )a order by grade desc limit 1000;然后得到结果那么就可以找到符合要求的user_id,brand_id对了即最活跃的用户品牌对。
3分钟掌握MelonLoader:Unity游戏模组加载的终极解决方案 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader
你是否曾想…
📅 2026/7/10 2:07:11
1. OpenCode不是“另一个VS Code插件”,而是本地AI编程工作流的重新定义 OpenCode 这个名字最近在开发者圈子里冒得很快,但很多人点开 GitHub 仓库第一眼就愣住:它既不是 VS Code 的扩展,也不依赖任何云端 API,甚至不…
📅 2026/7/10 2:07:11
百度最近开源了一个名为 Unlimited OCR 的项目,在 GitHub 上 5 天就获得了超过 1 万的 star。这个 OCR 工具最大的特点是引入了"类人类遗忘机制",能够单次处理数十页的长文档,解决了传统 OCR 在处理多页文档时的内存瓶颈问题。 传…
📅 2026/7/10 2:07:11
摘要:本文分享了一个使用 React Tailwind 构建赛博未来主义风格个人网址导航站的全过程。从开发者日常「收藏夹太乱」的痛点出发,详细介绍了 62 个精选网站的 8 大分类、3 套赛博主题皮肤、玻璃拟态卡片设计、全响应式布局等核心亮点,并深入…
📅 2026/7/10 3:11:37
MOS管体二极管深度解析:5大实战应用与3个关键选型陷阱从寄生到核心:被低估的体二极管价值在电源工程师的日常设计中,MOS管往往被视为理想的电子开关——我们关注它的导通电阻Rds(on)、栅极电荷Qg、耐压值Vds等参数,却常常忽略了一…
📅 2026/7/10 3:11:37
9大网盘直链下载终极解决方案:告别客户端束缚,重获下载自由 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国…
📅 2026/7/10 3:11:37
使用 Go 开发 Rockchip NPU 应用:开源项目 go-rknnlite
近年来,Rockchip 的 RK3566、RK3568、RK3576、RK3588 等 SoC 已成为边缘 AI(Edge AI)领域非常受欢迎的平台。借助集成的 NPU 与 RKNN Toolkit2,开发者可以在嵌入…
📅 2026/7/10 3:11:37
1. OpenClaw 是什么?它真能同时打通飞书和 QQ 吗?OpenClaw 这个名字最近在技术圈和效率工具爱好者群里频繁刷屏,但很多人点开 GitHub 仓库第一眼就懵了:README 里写着“Multi-platform AI Agent Framework”,底下却堆着…
📅 2026/7/10 3:11:37
1. 从标题看Jason Liu是谁,以及为什么值得关注“AI界的安东尼波登”这个标签,直接点出了Jason Liu在技术圈里的独特定位。安东尼波登是那位把专业厨房、街头小吃和全球饮食文化带进大众视野的传奇主厨,而Jason Liu在AI领域,做的也…
📅 2026/7/10 3:10:37
一、为什么接口自动化测试,适合用AI赋能?
大家可自行先思考一个问题:
AI赋能测试全流程,为什么优先推荐从接口自动化切入?
有三个典型原因:
接口输入结构化,AI最擅长"吃"
接口有OpenA…
📅 2026/7/10 0:00:53
终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock
原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…
📅 2026/7/10 0:00:53
YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…
📅 2026/7/10 0:00:53
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/9 15:10:35
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/9 14:14:01
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/9 15:10:36
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/9 15:10:36
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/9 15:10:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/9 15:10:36