草庐IT

sum_dept

全部标签

mysql - 为什么 sum() 查询返回带有更多小数点的结果?

上图显示了我的数据库表中名为“igstAmt”的列之一。当我使用查询"SELECTsum(igstAmt)asigstAmtFROMsalesinvoice时,它返回带有许多小数点的值21616.7500129491,但正确答案是21616.75.我知道我可以在显示的时候对结果进行四舍五入,我想知道为什么会这样?那一列的条目中的小数点最多为两位,所以结果也应该有2个小数点,对吧?该列的数据类型是float。 最佳答案 float数据类型不表示带十进制数字的数字。它用二进制来表示数字,所以数字中的二进制数字表示2的幂,如16、8、4、

MySQL SUM IF 列具有特定值

有没有办法只在满足特定条件时才对行求和?如果不满足,则必须将它们复制到新表中。例如,如果我有这张表|id|A|B|--------------|1|a|2||1|b|4||1|c|1||2|a|4||3|a|1||3|b|5|我想要这样的输出|id|A|B|--------------|1|a,b|6||1|c|1||2|a|4||3|a,b|6|它只会在“A”列是“a”或“b”时求和,如果它是“c”,它只会复制值 最佳答案 您可以在两个不同的Select查询中执行此操作。在第一个Select查询中,只考虑A具有值“a”或“b”的情

mysql - 更新列 Group by 的 SUM

UPDATEtable_nameSETcol3=SUM(col2)GROUPBYcol1报错:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'GROUPBYcol1'如何解决?Col1|col2|col3Water|22|water|3|water|5|Air|10|Earth|3|Air|5|Iwantincol3theresultsasfollowsCol1|col2|col3Water|22|30water|3

如果 MAX() 等于当前行 SUM() 聚合值,MySQL 如何选择 1?

我想选择一个名为sliced的新列(值可以是1/0或true/false但它不是matter)如果当前行的area等于MAX(SUM(c.area)),即flag具有最高聚合值的行:SELECTp.nameASname,SUM(c.area)ASareaFROMCityAScINNERJOINProvinceASpONc.province_id=p.idINNERJOINRegionASrONp.region_id=r.idWHEREr.id=?GROUPBYp.idORDERBYp.nameASC我尝试将area=MAX(area)ASsliced或什至area=SUM(MAX(c.

mysql - MySQL 中时间值的聚合函数 SUM

当我在MySQL中尝试SUM(TIMEDIFF(finishTime,'starttime'))时,我正在尝试生成排名列表,其中我必须对许多持续时间求和以获得总时间我注意到两个持续时间的相加就好像它们是两个正常数字一样,即如果我添加00:00:50和00:00:50,我得到00:01:00作为答案。TO_SECOND在MySQL5.1中不可用。 最佳答案 SUM(TIMEDIFF(TIME_TO_SEC(finishtime)-TIME_TO_SEC(starttime)));使用TIME_TO_SEC将TIME转换为秒数以进行数学

mysql - 使用另一个 SELECT 更新表,但字段为 SUM(someField)

基本上我有这样的东西:UPDATETableSETTable.col1=other_table.col1,FROMTableINNERJOINother_tableONTable.id=other_table.id问题是我想更新col1的选择如下:SELECTSUM(col1)FROMother_tableWHERETable.id=other_table.idANDperiod>2011编辑正确答案:UPDATEbestallINNERJOIN(SELECTbestid,SUM(view)asv,SUM(rawView)asrvFROMbeststatWHEREperiod>2011

php - MYSQL SELECT SUM() BY DATE IF NO MATCH RETURN 0

我已经将三个表相互连接起来。我正在查询关键字+统计信息。我需要按日期范围获取数据,并且如果没有该特定日期范围内的数据我希望它返回0个统计信息假设我的查询是:SELECTkeyword,SUM(stat)FROMkeywordsWHEREdate>='2012-07-10'GROUPBYkeyword;它会返回|我的关键词1|3||我的关键词2|6|示例表格内容:|编号|关键字|统计|日期|关键字组||1|我的关键字1|2|2012-07-11|1||2|我的关键字1|1|2012-07-12|1||3|我的关键字2|6|2012-07-11|1||4|我的关键字3|10|2012-07

mysql - 在 MySQL 中逐行使用 SUM()

我正在构建一个非常简单的应用程序,我可以在其中“打卡”执行各种任务,为此我在MySQL中有一个数据库表,如下所示:|ID|user_id|task_id|checkin_time|checkout_time------------------------------------------------------------|31|2|289|2012-07-1209:50:03|2012-07-1209:51:27|32|2|289|2012-07-1210:00:05|2012-07-1213:00:05我想通过SQL查询从中得到的是用户在上周每天签到的总时间。我试过这个查询:SE

mysql - SUM - 为什么我在使用 sum 和使用计算器时得到不同的总和)?

这个问题在这里已经有了答案:HowtodealwithfloatingpointnumberprecisioninJavaScript?(47个回答)UnexpectedOutputwhenaddingtwofloatnumbers(3个答案)关闭9年前。下午好。注意到在计算字段中的数量时的奇怪之处。数值表:类型字段-float。我选择总和:SELECTSUM(cost)ascostFROMTable结果我得到sum=20.47497010231018;我使用计算器)并且我得到sum=20,47497请告诉我为什么我会得到不同的结果?

带条件的 MySQL SUM DISTINCT

我需要使用条件语句和DISTINCT值来收集总和使用多个GROUPBY。下面的示例是一个复杂得多的查询的简化版本。因为真正的查询非常大,我需要避免彻底重写查询。数据Contractsidadvertiser_idstatus111221332411关闭的查询SELECTCOUNT(DISTINCTadvertiser_id)ASadvertiser_qty,COUNT(DISTINCTid)AScontract_qty,SUM(IF(status=1,1,0))AScurrent_qty,SUM(IF(status=2,1,0))ASexpired_qty,SUM(IF(status=