草庐IT

mysql - Eloquent count distinct 返回错误的总数

我对如何Eloquent地制定一个我无法访问的查询有疑问。当做类似的事情时$model->where('something')->distinct()->paginate();Eloquent运行一个查询来获取总数,查询看起来像这样selectcount(*)asaggregatefrom.....问题是,如果您在查询中使用distinct,您需要像selectcount(distinctid)asaggregatefrom.....得到正确的总数。Eloquent并没有这样做,因此返回了错误的总数。获得不同计数的唯一方法是像这样通过查询构建器传递一个参数->count('id')在这

MySQL DELETE 使用 Having 和 Count 的子查询

我正在尝试使用以下查询删除多个条目:首先,我使用此查询找到要删除的条目:SELECTguidFROMaccountGROUPBYguid,typeHAVINGcount(type)>1);然后我将此查询添加到DELETE语句中:DELETEFROMaccountWHEREguidIN(SELECTguidFROMaccountGROUPBYguid,typeHAVINGcount(type)>1);但是我得到这个错误:您不能在FROM子句中指定要更新的目标表“account” 最佳答案 我认为您需要使用临时表来实现您的需求,如下所示

mysql - SQL:多次重复结果行,并对行编号

我有一个SQL查询,结果如下:value|count------+------foo|1bar|3baz|2现在我想扩展它,以便count大于1的每一行出现多次。我还需要对这些行进行编号。所以我会得到:value|count|index------+-------+------foo|1|1bar|3|1bar|3|2bar|3|3baz|2|1baz|2|2我必须让这项工作适用于所有主要数据库(Oracle、SQLServer、MySQL、PostgreSQL等等)。因此,适用于不同数据库的解决方案将是理想的,但也欢迎巧妙地使其适用于任何数据库的方法。 最

MySQL语句-从一组中选择最大值

您好,我有下表,我想选择每个月插入的最大值(计数(*))。sqlfiddle.com/#!2/13036/1select*frombroadcastprofile,plugged,company,tstamp1,2,1,2013-10-0108:20:001,3,1,2013-10-0108:20:002,1,1,2013-10-0108:20:002,3,1,2013-10-0108:20:003,1,1,2013-10-0108:20:003,1,1,2013-09-0108:20:00所以如果我做类似下面的事情:selectplugged,count(*),extract(mon

MySQL - 连接两个查询(UNION?)

我有三个表:--订单(给我订单日期)-订单行项目(让我能够将事件结果链接到订单日期)-事件项目(给我事件结果)我正在尝试在图表上绘制结果,并且可以使用以下查询成功地为所有小于SELECTYEAR(od_date)ASYear,MONTH(od_date)ASMonth,test_name,pd_name,COUNT(test_result)ASPassedFROMtbl_lab_itemINNERJOINtbl_order_itemONtbl_order_item.od_item_id=tbl_lab_item.od_item_idINNERJOINtbl_orderONtbl_ord

mysql - SELECT count(*) 比 SELECT count(*) 慢两倍,MySQL 中的 some_column

我有两个简单的查询:SELECTcount(*)FROMtable1WHEREcond1=exp1ANDcond2=exp2返回行数。例如47.SELECTcount(*),some_columnFROMtable1WHEREcond1=exp1ANDcond2=exp2返回行数,例如47,以及some_column中的任意值,它比第一个查询快两倍!我直接在服务器上测试了它,当然是通过GUI(HeidiSQL),结果是一样的,查询2快了一倍!知道为什么会这样吗?我在WinServer2012上使用MySQL服务器5.6.21和Apache/PHP5.3。更新1:CREATETABLE`

mysql - 从 MySQL 中选择第 n 个百分位数

我有一个简单的数据表,我想从查询中选择大约第40个百分位数的行。我现在可以通过首先查询查找行数然后运行另一个查询来排序并选择第n行来执行此操作:selectcount(*)as`total`frommydata;可能会返回类似93、93*0.4=37的结果select*frommydataorderby`field`asclimit37,1;我可以将这两个查询组合成一个查询吗? 最佳答案 这将为您提供大约第40个百分位数,它返回40%的行小于它的行。它根据行距第40个百分位的距离对行进行排序,因为没有行可能正好落在第40个百分位上。

php - MySQL - 计算日期范围内的行出现次数,但将 null 转换为 0 以便显示

这是我当前的查询SELECTDAYNAME(date_created)ASDay,COUNT(*)ASmy_countFROMsometableWHERE(@date_created>='2010-10-2021:02:38'OR@date_createdISNULL)AND(@date_created如果计数存在,它只返回当天的数据。我正在研究ifnull,但没有成功我确定这很简单,但我想不通!任何帮助将不胜感激 最佳答案 使用合并:SELECTCOALESCE(x,0)ASvalFROMtable;如果x为null,它将返回0

php - 特定条件下的 MySQL COUNT() 总帖子数?

我一直在想弄清楚我做错了什么,在我直接回答问题之前,让我稍微解释一下我的MySQL结构(以便您更好地理解)。我有一个简单的PHP论坛,我在两个表(用于帖子和主题)中都有一个名为“已删除”的列,如果它等于0,则表示它显示(被认为未删除/存在),或者如果它等于1,则它隐藏(被认为已删除/不存在)-bool/lean。现在,我正在讨论的“特定标准”...我想使用其ID(forum_id)获取特定论坛中的帖子总数,确保它只计算未删除的帖子(已删除=0)并且它们的父主题也没有被删除(deleted=0)。列/表名称是不言自明的(如果需要,请参阅下面我为它们所做的努力)。我尝试了以下方法(使用“简

sql - 获取每个类别的前 10 名产品

我有一个类似这样的查询SELECTt.category,tc.product,tc.sub-product,count(*)assalesFROMtgt,ttctcWHEREt.value=tc.valueGROUPBYt.category,tc.product,tc.sub-product;现在在我的查询中,我想获得每个类别的前10名产品(按销售额排名)和每个类别我需要前5个子类别(按销售额排名)你可以假设问题陈述是这样的:获取每个类别销售额前10名的产品,并针对每个产品获取销售额前5名的子产品。这里的类别可以是书籍产品可以是哈利·波特的书子产品可以是HarryPorter系列5示例