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 ...
随机推荐
- JMM 最最最核心的概念:Happens-before 原则
关于 Happens-before,<Java 并发编程的艺术>书中是这样介绍的: Happens-before 是 JMM 最核心的概念.对应 Java 程序员来说,理解 Happens ...
- springboot使用jwt进行权限验证
springboot使用jwt进行权限验证 依赖准备 首先导入对应的依赖 <dependencies> <dependency> <groupId>org.apac ...
- Kafka万亿级消息实战
一.Kafka应用 本文主要总结当Kafka集群流量达到 万亿级记录/天或者十万亿级记录/天 甚至更高后,我们需要具备哪些能力才能保障集群高可用.高可靠.高性能.高吞吐.安全的运行. 这里总结内容主 ...
- CRM的未来发展前景有哪些?
随着时代的发展,近年来越来越多的国内中小企业开始采用CRM客户关系管理系统,CRM从此不再是大企业的专利,也开始让中小企业得以不断成长.国内CRM行业的发展越来越快, 它的前景是什么?今天小Z就来给大 ...
- 三分钟了解B2B CRM系统的特点
最近很多朋友想了解什么是B2B CRM系统,说到这里小Z先来给大家说说什么是B2B--B2B原本写作B to B,是Business-to-Business的缩写.正常来说就是企业与企业之间的生意往来 ...
- ipmitool -I lanplus -H IPADDR -U USERNAME -P PASSWORD power reset
IPMI是智能型平台管理接口(Intelligent Platform Management Interface)的缩写,是管理基于 Intel结构的企业系统中所使用的外围设备采用的一种工业标准,该标 ...
- 从CentOS7默认安装的/home中转移空间到根目录/ - LVM操作简明教程
一.基础概念 Cent0S 7默认启用LVM2(Logical Volume Manager),把机器的一块硬盘分为两个区sda1和sda2,其中分区sda1作为系统盘/boot挂载,少量空间:sda ...
- C语言函数sscanf()的用法-(转自Walter L)
在我的学习过程中,从文件读取数据是一件很麻烦的事,所幸有sscanf()函数. C语言函数sscanf()的用法sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int ss ...
- Django(35)Django请求生命周期分析(超详细)
Django请求生命周期分析 1.客户端发送请求 在浏览器输入url地址,例如www.baidu.com,浏览器会自动补全协议(http),变为http://www.baidu.com,现在部分网站都 ...
- GLSL着色器,来玩
对实现动画的前端同学们来说,canvas可以说是最自由,最能全面控制的一个动画实现载体.不但能通过javascript控制点.线.面的绘制,使用图片资源填充:还能改变输入参数作出交互动画,完全控制动画 ...