通过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的更多相关文章

  1. Linq to SQL -- Group By、Having和Exists、In、Any、All、Contains

    Group By/Having操作符 适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in ...

  2. LINQ to SQL Count/Sum/Min/Max/Avg Join

    public class Linq { MXSICEDataContext Db = new MXSICEDataContext(); // LINQ to SQL // Count/Sum/Min/ ...

  3. SQL Server数据库与max degree of parallelism参数

    我们今天主要向大家讲述的是SQL Server数据库中的max degree of parallelism参数,当 SQL Server 数据库在具N个微处理器或是 CPU 的计算机上运行时,它将为每 ...

  4. SQL GROUP BY 语句

    合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. SQL GROUP BY 语法 ...

  5. LINQ TO SQL ——Group by

    原文:LINQ TO SQL --Group by 分组在SQL中应用的十分普遍,在查询,统计时都有可能会用到它.LINQ TO SQL中同样具备group的功能,这篇我来讲下LINQ TO SQL中 ...

  6. 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 ...

  7. SQL-W3School-函数:SQL GROUP BY 语句

    ylbtech-SQL-W3School-函数:SQL GROUP BY 语句 1.返回顶部 1. 合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROU ...

  8. [源码解析] GroupReduce,GroupCombine 和 Flink SQL group by

    [源码解析] GroupReduce,GroupCombine和Flink SQL group by 目录 [源码解析] GroupReduce,GroupCombine和Flink SQL grou ...

  9. sql group by max

    SELECT    * ,    REPLACE(TDFG.xdfd,'doc_111','') GBFROM    (        SELECT            *        FROM  ...

随机推荐

  1. Xshell、Xftp评估过期的解决办法

    介绍一个     FTP客户端-IIS7服务器管理工具作为FTP客户端,它支持批量管理ftp站点.定时上传和定时下载,定时备份,且操作简洁.同时iis7服务器管理工具还是vnc客户端.并且支持批量管理 ...

  2. 查看.class文件的工具

    1.JDK 提供的 javap -c javap -c  test.class 2.将test.class用idea打开.

  3. 大学四年因为分享了这些软件测试常用软件,我成了别人眼中的(lei)大神(feng)!

    依稀记得,毕业那天,我们辅导员发给我毕业证的时候对我说"你可是咱们系的风云人物啊",哎呀,别提当时多开心啦????,嗯,我们辅导员是所有辅导员中最漂亮的一个,真的???? 不过,辅 ...

  4. 向Vertex Shader传递vertex attribute

    在VBO.VAO和EBO那一节,介绍了如何向Vertex Shader传递vertex attribute的基本方法.现在我准备把这个话题再次扩展开. 传递整型数据 之前我们的顶点属性数据都是floa ...

  5. 使用ldap客户端创建zimbra ldap用户的格式

    cat << EOF | ldapadd -x -W -H ldap://:389 -D "uid=zimbra,cn=admins,cn=zimbra" dn: ui ...

  6. 将top命令的输出,写入到文件中 top -b -n 1 -d 3 >>file.txt

    top -b -n 1 -d 3 >>file.txt 解析: -b :batch模式,可以重定向到文件中 -n 1:一共取1次top数据.后边加数字,表示次数 -d 3:每次top时间间 ...

  7. U盘PE重装系统导致D、E、F盘消失

    U盘PE重装系统导致D.E.F盘消失 听语音 原创 | 浏览:1251 | 更新:2014-08-18 18:46 | 标签:u盘 重装 解决使用U盘PE重装系统导致的错误问题 工具/原料   制作好 ...

  8. 强哥PHP学习笔记

    1.php的代码,必须放在.php的文件中,php代码必须写在<?php ?>之间. 2.//单行注释 /* 多行注释 */ 3.默认首页index.php index.html inde ...

  9. IEEE754标准

    以下计算按规格化规定: S:符号位 M:分数值 E:指数偏移值 单精度浮点数(32bit): NUM_single = (-1)^S *  1.M   *   2^(E-127) 双精度浮点数(64b ...

  10. C++课程设计 通讯录管理系统 原码及解析

    设计题目:通信录管理系统 用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理. (一)功能要求 查看功能:选择此功能时,列出下列三类选择. A 办公类B 个人类C 商务类,当选中某类时 ...