草庐IT

CREATED_BY

全部标签

MySQL group by with rollup, coalesce/ifnull, and date 函数

我遇到了MySQL的ROLLUP和处理结果NULL的问题。IFNULL/COALESCE函数与普通列一起使用效果很好,但在与日期函数一起使用时似乎会崩溃。示例如下:SELECTYEAR(date_time)ASYear,count(x)ASCountFROMmytableGROUPBYyearWITHROLLUP返回(如预期)YearCount---------2015320162NULL5当我查询非日期列(例如varchar)时,我可以通过使用IFNULL或COALESCE函数将NULL值替换为字符串来处理NULL值。但是,当我将相同的逻辑应用于上述查询时,它似乎不起作用。SELEC

MySQL 函数 : rank table by most similar attributes

我有一个包含产品ID和关键字的表格,如下所示:+------------+------------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+------------+------------------+------+-----+---------+----------------+|id|int(10)unsigned|NO|PRI|NULL|auto_increment||product_id|int(10)unsigned|YES|MUL|NULL|||ke

用ChatGPT3.5写的两段代码 —— by BoomWorks

目录◆简单代码测试——获取MAC地址的代码◇问题◇MacOS版本◇Windows版本◆面向对象的经典题目——自动贩卖机◇问题◇ChatGPT的第一个版本的代码◇ChatGPT的第二个版本的代码让ChatGPT写了两段简单的代码,代码写的很不错,思路很好,速度惊人。◆简单代码测试——获取MAC地址的代码刚开始ChatGPT写了一个MacOS版本的程序。后来有让它给我写了一个Windows版本。◇问题-请给我写一个取得电脑主机MAC地址的代码。-这个代码好像不是Windows系统版本的。可以给我一个Windows版本的获取MAC地址的代码吗?◇MacOS版本#include#include#inc

mysql - sql GROUP BY 和 HAVING 不工作

我有这个SQL查询,它给我一个不完整的结果(一半结果)。我想从学生表中检索同一类(class)的所有学生信息,然后按类(class)对他们进行分组。这些是查询代码:SELECTfirst_name,last_name,usernameFROMstudentsGROUPBYclassHAVINGclassIN(SS3);SELECTfirst_name,last_name,classFROMstudentsGROUPBYclassHAVINGclass='JSS1';SELECTuser_id,first_name,last_name,class,COUNT(*)AStotal_stud

mysql - 优化 ORDER BY

我正在尝试优化此查询,该查询按reputation字段(第1个)然后是id字段(第2个)对posts进行排序。没有第一个字段查询需要~0.250秒,但它需要~2.500秒(意味着慢10倍,太糟糕了)。有什么建议吗?SELECT--everythingisokhereFROMpostsASpORDERBY--1st:sortbyreputationifexists(1reputation=1day)(CASEWHENp.created_at>=unix_timestamp(now()-INTERVALp.reputationDAY)THEN+p.reputationELSENULLEND

mysql - 如果在查询中使用 order by,如何对 MySQL 中的索引列进行排序?

我正在阅读一篇关于Pinterest如何对他们的MySQL数据库进行分片的文章:https://medium.com/@Pinterest_Engineering/sharding-pinterest-how-we-scaled-our-mysql-fleet-3f341e96ca6f这里有一个表格示例:CREATETABLEboard_has_pins(board_idINT,pin_idINT,sequenceINT,INDEX(board_id,pin_id,sequence))ENGINE=InnoDB;他们展示了如何从该表中查询:SELECTpin_idFROMboard_h

mysql - SQL "GROUP BY"和 "INNER JOIN"语句一起

我有两个ANIMAL和NEED表:ANIMALNEEDNameSpeciesBirthdayA_SpeciesTypeKoala1Phascolarctidae02-10-2014PhascolarctidaeVeg.Bear1Ursinae03-10-2016UrsinaeVeg.Koala2Phascolarctidae04-09-2015UrsinaeMeetCattle1Bovidae20.03.2017UrsinaeFishWhale1Cetacea08.05.2010BovidaeVeg.CetaceaFish我要选择下表NameTypeKoala1Veg.Koala2Ve

mysql - 任意选择的非聚合列是否保证来自与 MySQL GROUP BY 相同的行?

更多的是一个有趣的问题而不是我想要使用的东西假设我运行以下查询:SELECTsu.id,su.name,sua.line_1,sua.line_2FROMsite_usersuJOINsite_user_addresssuaONsua.user_id=su.idWHEREsu.id=1GROUPBYsu.id/*idisthePKforsite_user*/sua.line_1和sua.line_2是否保证从同一site_user_address行返回?我知道,至少site_user_address行是任意选择的我在文档中找不到任何东西,也想不出一个可靠的方法来测试它更新据我所知,这不

php - 在 Laravel 中按数据透视表 created_at 排序

在我的数据库中有下表:类(class)(id、名称、created_at、updated_at)学生(id、姓名、created_at、updated_at)course_student(id、course_id、student_id、created_at、updated_at)我正在尝试按数据透视表course_student中的created_at值递减检索学生注册的所有类(class)这就是我定义模型的方式:学生模型:publicfunctionstudents(){return$this->belongsToMany(Student::class,'course_student

mysql - 在具有多个条件的 MySQL 中使用 group by 子句的正确方法是什么?

我正在编写一个查询,如果他们的平均成绩超过80,将按每个专业查找最年轻的学生,并根据以下关系按姓名排序。我正在使用MySQL服务器并使用MySQLWorkbench。学生:snum:integername:stringmajor:stringlevel:stringage:integer类:cname:stringmeets_at:timeroom:stringfid:integer成绩:snum(foreignkey)name(foreignkey)score这是我尝试实现查询的方式。selectS.major,S.name,S.agefromstudentS,gradesGgrou