sql:group by和 max
通过group by,having,max实现查询出每组里指定列中最大的内容
例如:我需要实现的功能是
获取每个模块中点击量最大的内容(表中有许多内容,内容里)
我写的查询语句如下

查询结果如下:

然而在我的数据库中,共有5个mod,mod_id分别为1,2,3,4,15


查询结果自动忽略了mod_id=4的数据们。原因是mod_id=4的模块的最大点击量88不是第一个出现的mod_id=4的内容。其它的四个最大值都是自己模块中第一个出现的内容。
这说明我的查询语句有问题。
解决方案:
将一条查询语句分成两条查询语句

第一个查询语句取出每个mod中click_num的最大值和对应的mod_id,
然后在第二句里再查询,并将每次的查询结果附加到slice中。查询结果:

如图,modID=4的结果查询出来了。
-----此处是分割线----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
不过由于一个Mod里的最大click_num可能不止一个,所以在上例中的第二句的查询方式最好使用QueryRows而不是QueryRow. hotcontent的类型也最好改为[]DtContent (DtContent是我定义的一个和数据库中的表相对应的struct),append也没法使用了,换成使用copy。。

不过结果并不乐观,总是出现这种错误:

(原来是我将copy(hotcontents,hotcontent)写成了copy[,],并不是见鬼了==!!!不过白白浪费许多时间,实在是粗心。)
不过hotcontents并没有如我愿不断变长,hotcontent的内容并没有复制到hotcontents里,生成结果里许多[] []都是hotcontents

原因是:

因为我通过 var hotcontents []DtContent声明的slice没有设置长度,这样hotcontent就复制不进去。因为我无法确信有多少hotcontent,所以我就依据每个模块*10来设置hotcontents的长度

终于解决了,不过由于我声明的时候给的长度太大了,所以slice里有许多空值,耗费资源。
所以我希望能够动态的增加长度。
sql:group by和 max的更多相关文章
- Linq to SQL -- Group By、Having和Exists、In、Any、All、Contains
Group By/Having操作符 适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in ...
- LINQ to SQL Count/Sum/Min/Max/Avg Join
public class Linq { MXSICEDataContext Db = new MXSICEDataContext(); // LINQ to SQL // Count/Sum/Min/ ...
- SQL Server数据库与max degree of parallelism参数
我们今天主要向大家讲述的是SQL Server数据库中的max degree of parallelism参数,当 SQL Server 数据库在具N个微处理器或是 CPU 的计算机上运行时,它将为每 ...
- SQL GROUP BY 语句
合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. SQL GROUP BY 语法 ...
- LINQ TO SQL ——Group by
原文:LINQ TO SQL --Group by 分组在SQL中应用的十分普遍,在查询,统计时都有可能会用到它.LINQ TO SQL中同样具备group的功能,这篇我来讲下LINQ TO SQL中 ...
- JS中Float类型加减乘除 修复 JQ 操作 radio、checkbox 、select LINQ to SQL:Where、Select/Distinct LINQ to SQL Count/Sum/Min/Max/Avg Join
JS中Float类型加减乘除 修复 MXS&Vincene ─╄OvЁ &0000027─╄OvЁ MXS&Vincene MXS&Vincene ─╄Ov ...
- SQL-W3School-函数:SQL GROUP BY 语句
ylbtech-SQL-W3School-函数:SQL GROUP BY 语句 1.返回顶部 1. 合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROU ...
- [源码解析] GroupReduce,GroupCombine 和 Flink SQL group by
[源码解析] GroupReduce,GroupCombine和Flink SQL group by 目录 [源码解析] GroupReduce,GroupCombine和Flink SQL grou ...
- sql group by max
SELECT * , REPLACE(TDFG.xdfd,'doc_111','') GBFROM ( SELECT * FROM ...
随机推荐
- [LeetCode每日一题]88. 合并两个有序数组
[LeetCode每日一题]88. 合并两个有序数组 问题 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 初始化 n ...
- 基于RRCF(robust random cut forest)的时间序列异常检测流程
摘要:RRCF是亚马逊提出的一个流式异常检测算法,是对孤立森林的改进,可对时序或非时序数据进行异常检测.本文是我从事AIOps研发工作时所做的基于RRCF的时序异常检测方案. 1. 数据格式 ...
- 运维告诉我CPU飙升300%,为什么我的程序上线就奔溃了
线上服务CPU飙升 前言 功能开发完成仅仅是项目周期中的第一步,一个完美的项目是在运行期体现的 今天我们就来看看笔者之前遇到的一个问题CPU飙升的问题. 代码层面从功能上看没有任何问题但是投入使用后却 ...
- 【近取 key】技术规格说明书
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 技术规格说明书 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉全栈开发流程 ...
- KMP(The Knuth-Morris-Pratt Algorithm)
本文代码来自于中国大学MOOC KMP课件下载 注释内容为自己理解,如有错误请评论,或者私信给我,谢谢 #include <stdio.h> #include "stdlib.h ...
- vscode 取消 eslint everywhere
vscode装了eslint插件,一不小心点了eslint everywhere 然后任务栏就变成这样了 eslint前面是双钩 不管你打开什么项目,什么工作空间,永远都是默认开启ESlint!!! ...
- [转载]libvirt(virsh命令总结)
libvirt(virsh命令总结) virsh回车进入交互式界面: version pwd hostname 显示本节点主机名 nodeinfo 显示节点信息 list --all 显示所有云主机 ...
- 运维实战案例之“Too many open files”错误与解决方法
运维实战案例之"Too many open files"错误与解决方法 技术小甜 2017-11-16 15:02:00 浏览869 服务器 shell tomcat 脚本 o ...
- Ansible_描述角色结构
一.利用角色构造ansible playbook 1.What's 角色 1️⃣:Ansible角色提供了一种方法,让用户能以通用的方式更加轻松地重复利用Ansible代码. 我们可以在标准化目录结构 ...
- C语言程序设计#成绩查询系统
学生成绩管理系统 [注释]:请点赞,好人一生平[yi]安[wo]. #codeblocks程序下编写 #include<stdio.h>#include<stdlib.h>// ...