精华内容
下载资源
问答
  • 问题详情怎么从mysql某一字段降序排列后取出有并列数据的记录?想要求出学号为202开头的学生总分前N名的语文平均分。但是以下php语句查询后,$num取总分前7名的时候,显示出来的学号明显不对。请问:这个错在哪里...

    你的位置:

    问答吧

    -> PHP

    -> 问题详情

    怎么从mysql按某一字段降序排列后取出有并列数据的记录?

    想要求出学号为202开头的学生总分前N名的语文平均分。但是以下php语句查询后,$num取总分前7名的时候,显示出来的学号明显不对。请问:这个错在哪里?怎么改正?

    学号 语文 数学 总分

    20313 108 141 249

    20114 114 134 248

    20120 122 126 248

    20205 109 139 248

    20314 113 135 248

    20125 113 134 247

    20212 110 137 247

    20261 113 134 247

    20201 96 150 246

    20307 113 133 246

    $sql = "select avg(chinese) from (select id,total from test200702 where id > 20100 AND id < 20370 order by total desc limit 0,$num) as a where id like '202%'";

    $query=mysql_query($sql);

    while ($row = mysql_fetch_array($query)) {

    echo $row[id]."
    ";

    }

    作者: nothing9

    发布时间: 2007-02-09

    当以上的 $num = 6 时,显示的结果是:

    20205

    20261

    而不是我想要的正确结果(实际上并列第六名的有两个202班级的,都应该算):

    20205

    20212

    20261

    作者: nothing9

    发布时间: 2007-02-09

    终于解决了!

    QUOTE:

    SELECT avg(chinese) FROM ( SELECT * FROM test200702 WHERE id BETWEEN 20100 AND 20370 ORDER BY total DESC LIMIT $num ) AS a WHERE id BETWEEN 20200 AND 20299;

    作者: nothing9

    发布时间: 2007-02-10

    有逻辑错误,当两个符合条件的记录正好处于 $num 和 $num+1 位置时,处理结果和你想要的结果不一致

    作者: Namelessxp

    发布时间: 2007-02-10

    用一楼的数据,我试了一下,$num 取值 7,8,9 的时候,没发现有什么不对啊?

    作者: nothing9

    发布时间: 2007-02-12

    晕,今天把这段代码又试了一下,果然还是有问题。

    请问:怎么可以输出并列的数据啊?

    作者: nothing9

    发布时间: 2007-05-03

    [Copy to clipboard] [ - ]CODE:

    select avg(语文) from test200702 where 总分 >= (select 总分 from (select 总分 from test200702 where 学号 like '202%' group by 总分 order by 总分 desc limit 7) as temp order by 总分 limit 1) and 学号 like '202%'

    可以处理总分并列的情况(前n名不止n个人)

    可以处理前7名的总分实际只有3个(248 247 246)

    我是用的postgresql语法来写,不晓得mysql认不认

    作者: 夜猫子

    发布时间: 2007-05-03

    展开全文
  • 对有多列的数据表进行排序,如果排序条件不止一个,而且有优先顺序,大家...案例:将下图 1 中的学生按成绩从高到低排名,排名规则为:依次按总分、专业课、基础课的优先顺序排。效果如下图 2 所示。解决方案:1....

    对有多列的数据表进行排序,如果排序条件不止一个,而且有优先顺序,大家一般怎么排?是不是还在用菜单的排序选项一个一个条件添加?

    这么操作也挺麻烦的,今天就教大家一个新的多条件排序方法,操作很简单,但是思路比较独特,学会这一招,以后遇到类似的需求都只要套用这个方法就行了。

    案例:

    将下图 1 中的学生按成绩从高到低排名,排名规则为:依次按总分、专业课、基础课的优先顺序排。效果如下图 2 所示。

    7728aa6a5f24c79cff85673aab2cd2c9.png
    5dbefb905f50b00351a89124f656e632.png

    解决方案:

    1. 将 F 列设置为辅助列,在 F2 单元格中输入以下公式 --> 下拉复制公式:

    =D2*1000+B2*100+C2

    公式原理:

    • 将需要优先排序的列扩大 10 的 n 次方倍,比如本例中我将总分扩大了 1000 倍;在实际应用中,如果数据本身比较大,可以视情况扩大 n 的数字,比如扩大 10000 倍,100000 倍……
    • 优先级次之的列依次缩小 n 的数字,最后加总求和
    • 总和的数字从高位到低位的排列顺序,正好与需要排序列的优先顺序吻合;因此,如果将这个总和数排序,就是按优先顺序排序
    961a3a4ae3dba7f90d3ef4bc5ed2107f.png
    01da7d35d28cfe9150d28d1aad80d348.png

    2. 选中 A1:F19 区域 --> 选择菜单栏的“数据”-->“排序”

    49d68bb0dae6727d43458c506552376d.png

    3. 在弹出的菜单中按以下方式设置 --> 点击“确定”:

    • 主要关键字:辅助
    • 排序依据:单元格值
    • 次序:降序
    09a2dfb52e98a2ea0412f085f8176945.png

    A 至 D 列已经按题目要求的优先顺序降序排列了。

    efc6e9cfa2546f51fb580148ba2c8f02.png

    4. 在 E2 单元格中输入“1”--> 按住 Ctrl 键下拉单元格,从而顺序填充整列

    6ee7723d19faee3dfb42220aeb4d4237.gif

    这就是最终结果。

    5dbefb905f50b00351a89124f656e632.png

    很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

    现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

    展开全文
  • 排序规则为首先按照总分排序,总分相同则英语单科成绩排序,总分和英语成绩也相同时考号小者排在前面。现给出这m个学生的考研初试成绩,请筛选出可以进入复试的n名学生并按照排名从高到低的顺序依次输出。 输入...
  • js的sort方法,我们一般传入一个回调...如下例子,我们学生的总分排序,如果总分相等,我们再按照语文成绩排序。 var jsonStudents = [ { name: "Dawson", totalScore: "197", Chinese: "100", math: "97" }, ...

    js的sort方法,我们一般传入一个回调用于单排序,也就根据某一个条件排序,那么一个场景需要多条件排序(多重排序),我们怎么处理呢?

    如下例子,我们按学生的总分排序,如果总分相等,我们再按照语文成绩排序。
    var jsonStudents = [
        { name: "Dawson", totalScore: "197", Chinese: "100", math: "97" },
        { name: "HanMeiMei", totalScore: "196", Chinese: "99", math: "97" },
        { name: "LiLei", totalScore: "185", Chinese: "88", math: "97" },
        { name: "XiaoMing", totalScore: "196", Chinese: "96", math: "100" },
        { name: "Jim", totalScore: "196", Chinese: "98", math: "98" },
        { name: "Joy", totalScore: "198", Chinese: "99", math: "99" }
    ];
    
    jsonStudents.sort(function(a, b) {
        var value1 = a.totalScore,
            value2 = b.totalScore;
        //总分相同 
        if (value1 === value2) {
            // 按语文分数降序排序
            return b.Chinese - a.Chinese;
        }
        // 总分不同,降序排序
        return value2 - value1;
    });
    
    console.log("jsonStudents :", jsonStudents);

    关键点在于sort回调如何定义排序规则

    转载于:https://www.cnblogs.com/sefaultment/p/9879213.html

    展开全文
  • 如果有两个行字段,要求第一个字段排序的同时,还要在分类中第二个字段再次排序怎么才能做到?文字描述大家可能没什么感觉,看了案例就明白了。案例:将下图 1 的数据表制作成数据透视表,要求:计算出每个人...

    这是网友的一个求助,问题还挺典型的,因为用一般的方法确实很难解决。

    数据透视表中的值虽然可以排序,但是只能有一个排序条件,无法设两个优先级。如果有两个行字段,要求按第一个字段排序的同时,还要在分类中按第二个字段再次排序,怎么才能做到?

    文字描述大家可能没什么感觉,看了案例就明白了。

    案例:

    将下图 1 的数据表制作成数据透视表,要求:

    • 计算出每个人的总成绩;
    • 先按各班级总分降序排序;
    • 再按班级中每个人的总分降序排序

    效果如下图 2 所示。

    1ba8926a3227173760528433c92eec31.png
    445ef7958aac2cec884ec73e1d5a1b6a.png

    解决方案:

    1. 选中数据表的任意区域 --> 选择菜单栏的“插入”-->“数据透视表”

    5fde2c27b4085e12c30dba6051dc9e1d.png

    2. 在弹出的对话框中选择“现有工作表”及其位置 --> 点击“确定”

    5042c8b254919659f720ea573117ff70.png

    3. 在右侧的“数据透视表字段”区域,将“班级”和“姓名”字段拖动到“行”区域,“语文”、“数学”、“英语”拖动到“值”区域

    eda09d3eea83f2a292f1b8026880b3d8.png
    304487c848d4ac6e5930189b4e2585cc.png

    4. 选中数据透视表的任意区域 --> 选择菜单栏的“分析”-->“字段、项目和集”-->“计算字段”

    6bbed64692dc3e3fdc15946c2d576cdb.png

    5. 接下来会弹出以下设置对话框,将公式区域的“0”值删除 --> 点击“插入字段”按钮分别将三门课的字段插入公式区域 --> 手工输入公式中的“+”号 --> 点击“确定”

    7a7223f5449a63a563ed734949cb2480.png
    cc1434a14dd4dc88a37c1385d9da2100.png

    现在数据透视表中就新增了一个求和字段。

    有关在数据透视表中插入计算字段的详解,请参阅 Excel – 数据透视表竟然还能计算进出账目。

    d44987411d4c5b153bdfc9fdd7a1fc7b.png

    6. 双击“ H1 单元格,在弹出的“值字段设置”对话框中将名称修改为“ 语文”--> 点击“确定”

    * 请注意:文字前面要留个空格,否则会提示重名错误。

    6715f33dc7dad51ece25a4c1199363c4.png

    7. 用同样的方式修改其他学科字段名称,并将最后一列的字段名改成“总分”

    d8f4867c0c2c5be4a23f7b11580cfd74.png

    8. 选中数据透视表的任意区域 --> 选择菜单栏的“设计”-->“报表布局”-->“以表格形式显示”

    f8d3063e9676fc1b82c2a43e8e927ae2.png
    af7cbdea4dc913c9e7fa790d8ccb8cf0.png

    9. 点击 G1 单元格旁边的箭头 --> 在弹出的菜单中选择“其他排序选项”

    c27ad0b6bf06a7f676609f3cca4b1890.png

    10. 在弹出的对话框中选择“降序排序依据”--> 在下拉菜单中选择“总分”--> 点击“确定”

    c6929d85b6949f7d862ce77351a2d12b.png

    11. 点击 H1 单元格旁边的箭头 --> 在弹出的菜单中选择“其他排序选项”

    a74774567d33e14d309ac0d9b6e577ce.png

    12. 在弹出的对话框中页同样选择“降序排序依据”-->“总分”--> 点击“确定”

    a862497ece7940ed0fc7c37d0712ec74.png

    现在数据透视表就按照案例要求进行了两次排序,先按班级总分排,再在班级内部排。

    7db97e8d9bbb2be3f105231bdf0b8c17.png

    插句题外话,如果需要修改计算字段的公式,甚至删除该字段,怎么操作呢?

    选中数据透视表的任意区域 --> 选择菜单栏的“分析”-->“字段、项目和集”-->“计算字段”

    d2d290ca48753f52a99e697798f16443.png

    在弹出的对话框中的“名称”区域选择刚才添加的“字段1”

    bd37925a736adb9eee5040dfb6851fd0.png

    点击右侧的“修改”或“删除”按钮就可以修改公式或删除字段。

    5d459d92d239404945a71e54681d6d90.png

    很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

    现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

    展开全文
  • Excel 技巧百例:数据透视表的排序

    千次阅读 2017-07-27 07:22:59
    如上图,我们将成绩单学生进行汇总总分,点击总分后发现 “排序和筛选” 是制灰的,也就是无法使用的,那么我们应该如果对汇总后的成绩进行排序呢? 如果我们选择数据,然后复制,新建sheet,选择性粘贴为数值后就...
  • Excel排序怎么排?我们经常使用表格来搜集记录信息。如果我们表格中的数据过多,而且没有进行数据的归纳总结。那应该是件让人头大的事儿,为了获得更加准确的数据,我们需要对Excel中的内容进行排序排序功能可以把...
  • 2019广东考生平行志愿录取时是按省排位投档的吗 现在不少地区的高考志愿填报都是平行志愿...在检索考生志愿前,首先将所有考生分科类按总分从高到低排序。投档检索时,先检索排在第一位考生所填报若干个院校志愿,....
  • 遵循志愿”的原则,先在几次不同投档比例的模拟投档后,由招生院校确定投档比例,再分别将文史类、理工类达到批次全省录取控制分数线(以下简称省控线)的考生,考生总分(文化课成绩+照顾政策分)从高到低排序,并...
  • 排名,并九科总分排序。其他sheet名字是“科目+单科排名”,内容是ID+班别+姓名+本科目分数+本科目排名。如何实现? 如果可以,在此基础上我想做一个EasyGUI,...
  • 女团总分输出 *****"; cout***** 5.退出返回主菜单 *****"; cout***** 6.直接退出本系统 *****"; cout*************************************************"; } void InitSch() //初始化信息 { int i;...
  • 学生成绩管理系统(★★) 问题描述:主要功能是对批量学生的各门成绩进行录入、修改、查询、统计等,要求...6) 成绩排序:对某门成绩或总分进行快速排序,显示、保存 7)统计及格和优秀人数:统计及格和优秀率。 8)退出
  • char hint[80]="请提示输入!"; struct Score { double yuwen,math,english,tiyu,sum; }; struct Student { char num[10],name[20],sex[10]; int age; struct Score score; }stu[5]; void printstudent(int i)...
  • printf("现有按总分降序的成绩记录3\n"); printf("*********************************************************\n"); FilePrint(file3); printf("*********************************************************\n")...
  • 大话数据结构

    2019-01-10 16:35:22
    1.2你数据结构怎么学的? 3 他完成开发并测试通过后,得意地提交了代码。项目经理看完代码后拍着桌子对他说:“你数据结构是怎么学的?” 1.3数据结构起源 4 1.4基本概念和术语 5 正所谓“巧妇难为无米之炊”,再...
  • 大话数据结构 程杰

    2018-09-01 10:06:43
    1.2你数据结构怎么学的? 3 他完成开发并测试通过后,得意地提交了代码。项目经理看完代码后拍着桌子对他说:“你数据结构是怎么学的?” 1.3数据结构起源 4 1.4基本概念和术语 5 正所谓“巧妇难为无米之炊”,再...
  • 1.2 你数据结构怎么学的? 3 他完成开发并测试通过后,得意地提交了代码。项目经理看完代码后拍着桌子对他说:"你数据结构是怎么学的?" 1.3 数据结构起源 4 1.4 基本概念和术语 5 正所谓"巧妇难为无米之炊",...
  • 他每次一吃完早饭就冲着去了图书馆,挑一个好地儿,把他书包里的书,一本一本的座位放好,长长一排,九个座硬是被他占了。 3.4.1顺序存储定义 47 3.4.2顺序存储方式 47 3.4.3数据长度与线性表长度区别 48 3.4.4...
  • 他每次一吃完早饭就冲着去了图书馆,挑一个好地儿,把他书包里的书,一本一本的座位放好,长长一排,九个座硬是被他占了。 3.4.1顺序存储定义 47 3.4.2顺序存储方式 47 3.4.3数据长度与线性表长度区别 48 3.4.4...
  • 大话数据结构-程杰

    2014-07-13 23:45:52
    1.2 你数据结构怎么学的? 3 他完成开发并测试通过后,得意地提交了代码。项目经理看完代码后拍着桌子对他说:"你数据结构是怎么学的?" 1.3 数据结构起源 4 1.4 基本概念和术语 5 正所谓"巧妇难为无米之炊",再...
  • 按总分排序函数: STUDENT *sort(STUDENT *head) 计算总分和均分函数: void computer(STUDENT *h) 修改函数: STUDENT *Modify(STUDENT *head,STUDENT *new) 按学号排序函数: STUDENT *index(STUDENT *h) 菜单函数...
  • 奇偶数排序 自动生成序号 如何自动标示A栏中的数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序列 字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数列自动加数 一个排序问题 ...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    奇偶数排序 自动生成序号 如何自动标示A栏中的数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序列 字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数列自动加数 一个排序问题 ...
  • 对学生进行总分排序(功能三),最后一个人的数据会出现问题,不显示学号,成绩部分一串莫名其妙的数据,大佬们可以运行一下代码看看问题 求大佬们解答到底出了什么问题以及...
  • 3. 建立数据库,通过对系统的分析,我们要确定数据库的结构是怎么样的,使得数据库的表结构尽可能的合理,操作上更加方便、简洁 。 4. 划分功能模块,使得整个系统分到每个小组成员,使系统能整个进行。 5. 系统...
  • Quartus_II使用教程

    热门讨论 2012-11-26 23:20:43
    如果是进行总分线连接,则一定要按照规定命名。在首先分线的名字一定要一样,然后 表示哪条分线的数字一定要用[ ]括起来,否则编译无法通过。该实验中命名为 Q[0],Q[1],Q[2],Q[3],因此总线应为Q[3..0]或者Q[0..3]。...

空空如也

空空如也

1 2
收藏数 27
精华内容 10
关键字:

怎么按总分排序