你好呀!我的SQL任务有一些麻烦,也许有人可以帮助我。我们有2个表:订单和供应商。需要准备一个带有供应商名称,已发货商品和总订单百分比的表。我几乎准备了整个任务,但是要过滤3个供应商中的2个供应商中的2个,这些供应商的数量高于平均值。以下是任务说明:选择运送高于平均水平(发送者”列的托运人,他们运送的订单数量(到列“已发送”)以及从总量(到列“配额”)的运输百分比用“%”标志)所以这是我的查询:SELECTShippers.ShipperNameAS'Sender',COUNT(*)AS'Item_Sent',COUNT(*)/(SELECTCOUNT(*)FROMOrders)*100AS"
我有一个用户表,其中有一个名为“created”的字段,其中包含注册日期。如何获得包含过去12个月每月注册数量的列表?像这样:MonthCount1123222222312244653......127654我不习惯使用mysql,所以直到现在我只知道如何计算去年的注册数量,而不是如何按过去12个月对计数进行分组。提前致谢!更新现在我得到了这个,使用@fthiella解决方案:+------------------------------+-------------------------------+----------+|Year(FROM_UNIXTIME(created))|M
我有以下结构IDDATE(DATETIME)TID12012-04-0123:23:238882我正在尝试计算行数并按匹配TID=8882的月份的每一天对它们进行分组谢谢 最佳答案 您可以使用DAY进行分组功能:SELECTDAY(Date),COUNT(*)FROMtableWHERETID=8882GROUPBYDAY(Date) 关于MySQL按天计数和分组,我们在StackOverflow上找到一个类似的问题: https://stackoverflo
我要实现的目标:我正在开发带有产品目录的网站。这是与我的问题有关的实体的规范化模型(简化):因此,存在一些产品功能(例如本示例中的大小和类型),它们都具有预定义的值集(例如,存在大小1、2和3,类型可以是1、2或3(这些集合不必相等),仅是示例。))。产品与每个功能之间的关系是“多对多”的-一个功能的不同值不会相互排斥。我的任务是构建表格,该表格将允许用户根据产品的功能过滤搜索结果。屏幕截图示例:使用“AND”逻辑将一个功能的多个检查值混合在一起,因此,如果我检查了一个和三个尺寸,则我需要所有具有两个尺寸的产品(+可能有其他尺寸,没关系,但选择的是必须存在)。每个功能值附近的数字代表产
像这样的数据库表=============================suburb_id|value=1|2=1|3=2|4=3|5查询是SELECTCOUNT(suburb_id)AStotal,suburb_idFROMsuburbswheresuburb_idIN(1,2,3,4)GROUPBYsuburb_id但是,当我运行此查询时,当suburb_id=0时,它不会给出COUNT(suburb_id)=0因为在suburbs表中,没有suburb_id4,我希望此查询为suburb_id=4返回0,例如=============================total|
这个问题在这里已经有了答案:MySQL-Howtocountallrowspertableinonequery(9个回答)关闭8年前。我正在使用脚本SELECTSUM(TABLE_ROWS)FROMINFORMATION_SCHEMA.TABLESWHERETABLE_SCHEMA='Tables';但是,它并不准确,因为我的MySQL表使用的引擎是InnoDB(我现在才意识到这可能是个问题,因为这些数据库已经存在了一段时间)。有什么方法可以使用MySQL获取数据库每个表中每一行的准确计数?干杯。
SELECTCOUNT(*)FROMTable1WHEREuser="carl"ANDans="yes"然后我想将这个查询的输出分成另一个查询,例如输出是10。所以它会像:10/SELECTCOUNT(*)FromTable1WHEREuser="carl"正确的语法是什么?谢谢 最佳答案 您想使用条件聚合和除法。您不需要两个查询:SELECTSUM(ans='yes')/COUNT(*)FROMTable1WHEREuser='carl';SUM(ans='yes')计算yes的行数。实际上,您可以将其进一步简化为:SELECTa
对于InnoDBstorage是不是统计记录总数比较好在上使用mysql_num_rowsselect*fromtblwherepk=1或通过获取数组并从中检索“总”值selectcount(*)astotalfromtblwherepk=1? 最佳答案 绝对是后者。它可以直接从PK的索引中获取值,而前者几乎肯定需要表扫描(除非每一列都是索引的一部分;即便如此,它也必须从所有地方获取值指数)。然后,根据您连接到数据库的方式,有大量数据传输只是为了获得计数。explain可以在这里提供帮助。在这种情况下,它会告诉您选择已被优化掉。
我有一个带有自动递增主键的表。该表旨在存储数百万条记录,我现在不需要删除任何内容。问题是,当插入新行时,由于某些错误,自动递增键在自动递增ID中留下了一些空隙。例如,在5之后,下一个ID是8,留下6和7的空隙.结果是当我计算行数时,结果是28000,但是maxid是58000。这可能是什么原因?我没有删除任何东西。我该如何解决这个问题。附言我在插入记录时使用插入忽略,这样当我尝试在唯一列中插入重复条目时它不会出错。 最佳答案 这是设计使然,并且会一直发生。为什么?让我们以2个正在执行INSERT的重叠事务为例事务1执行INSERT,
在我的数据库中,我有一个“sales”表和一个“sales_item”。有时,出现问题,记录了销售额,但未记录销售商品的销售额。所以我试图从我的表“sales”中获取salesID,它在sales_item表中没有任何行。这是我认为可行的mysql查询,但它不可行:SELECTs.*FROMsalessNATURALJOINsales_itemsiWHEREs.datelike'".((isset($_GET['date']))?$_GET['date']:date("Y-m-d"))."%'ANDs.sales_idlike'".((isset($_GET['shop']))?$_G