问题标签 [having-clause]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 为什么有“有”,却有“在”
我知道这被讨论了很多,但我的研究都无法让我相信 MySQL 中 ' where
' 和 ' having
' 子句之间的区别。据我了解,我们可以使用 ' ' 实现使用 'where' 子句可以完成的一切having
。例如。select * from users having username='admin'
. 那你为什么需要' where
'子句?使用 where 会产生任何性能差异吗?
mysql - 正确使用 HAVING 子句
我正在使用 MySQL,我的目标是UPDATE
仅在表中满足特定条件的字段。这是我所拥有的:
有了以上内容,我想在当前金额上添加员工拥有的奖金总和,并且仅适用于存在于tbl_emp
. 事实上,我收到一条错误消息:
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 7 行的“GROUP BY o.user_id LIMIT 1)”附近使用正确的语法
如果没有HAVING
条款,系统会更新所有员工的金额,但没有任何奖金的员工,它只是将金额重置为0(即使他们已经有金额)。对于那些有奖金的人,工作正常。
有任何想法吗?正确的使用方法是HAVING
什么?
更新:
更新后所需的结果应该是
但是,我得到了这个结果,
php - MySQL:带有 HAVING 的 GROUP BY 返回空集,但在没有 GROUP BY 的情况下工作
我有一个包含以下字段的表(cargo_route):
ID、
卡车 ID、
纬度、
经度、
半径
这是一条运输路线,其中每一行都是卡车的纬度,经度坐标的每一站。
我需要计算每个停靠点和我的(任何输入)点(纬度)之间的距离,如果距离小于指定的半径(对于那个停靠点),则带来结果。(基本搜索城市是否在路线上或距离路线上的任何站点太远)
这是我的查询(效果很好)
该代码有效....但是,它给我带来了几行具有相同卡车ID的行,(基本上每个停靠点都足够接近搜索点)
当我尝试“GROUP BY truck_id”以仅获取通过我的点的卡车的 ID 时,我得到一个空集:(
我可以在 PHP 逻辑中解决这个问题,但我宁愿让 SQL 返回我真正需要的东西,也不愿遍历数组。
我进行了研究并了解到 GROUP BY 首先执行并且 HAVING 最终“没有”距离 < 半径,因为 group by 抓住了第一行(因此 HAVING 产生了空集)。我也试过 ORDER B 但它没有效果。
这是返回 EMPTY SET 的查询
问题: 有没有办法执行 HAVING 然后分组?也许语法略有不同?
我尝试重新排序 HAVING 和 GROUP BY 但它给我一个错误。另外,我不能使用 WHERE,因为“距离”是一个聚合列。
************编辑_已解决********************
无法回答我自己的问题:
伙计们,实际上在这里找到了答案:SELECT From MySQL View With HAVING Clause Returns Empty Result Set
基本上,把 SELECT * FROM (my query) S WHERE distance < radius GROUP BY truck_id
inner-join - Select with Inner Join with Multipart Identifier and Being Clause
我需要为具有重复项的多部分标识符选择某些字段。
我有查询以正确获取重复项。
但是在找到重复项后,我需要从同一个表中获取更多信息,但仅限于具有重复项的多部分标识符。所以像下面这样。
有人可以帮我正确的语法吗?
sql - 如果项目在特定时间段内具有值,则排除项目
我正在尝试返回销售特定产品的帐户列表 (SourceCustomerProductCode = 102) 并希望查看在 2013 年销售此产品的帐户,但如果他们在 2012 年销售,我希望将它们排除在我的查询(即我只想返回新客户)。我的以下查询是返回 2013 年销售此产品的帐户,但包括 2012 年销售此产品的帐户。
我知道我可以在 [CaseAndGalloneVolume] 语句中使用 case when 来在 SELECT 区域下编写此语句,但需要在 where 子句中编写此语句,因为最终我要将其他产品添加到我的表中。
谢谢你的帮助!
sql - 添加列时 HAVING 子句不起作用(需要检查约束?)
SQL #1 向我返回 163 个帐户(通过 HAVING 子句),因为它给了我从 2013 年开始首次购买特定包(包 102)的帐户。
现在我想在 2013 年按会计月份细分销售额,当我添加 [Unique_Fiscal_Month_Label] 作为列时,它给了我 406 个帐户,而 HAVING 子句现在基本上不起作用。请参阅下面的 SQL #2。任何想法为什么添加 Fiscal_Month 基本上然后给我所有曾经购买过该包裹类型的帐户?我在网上读到检查条件可能会有所帮助,但写下来没有运气。
SQL #1
SQL #2
mysql - SQL:寻找商店的唯一客户的问题
我是 SQL 新手,我想编写一个查询来查找任何特定商店的唯一客户。例如: SH1 店有 10 位顾客注册,其中 10 - 3 位顾客也注册到其他一些商店。我想要一个查询,它将返回唯一的 7 个客户到 SH1 商店。
ShopId
和都CustomerId
存储在同一个表中,所以我想需要一个子查询。
谢谢,马尤尔
样本数据:
ShopId CustomerId
- Shop1 Cust001
- Shop1 Cust002
- Shop1 客户003
- Shop2 Cust002
- Shop3 Cust004
- Shop4 Cust002
在上面的示例中,如果我对商店 ID Shop1 运行查询,我应该得到 Cust001、Cust003 作为回报,它们是 Shop1 独有的,而不是 Cust002,因为它与其他商店 ID 相关联。
mysql - 拥有和在哪里
我们HAVING
用于行组和WHERE
单个行。
但以下是有效的:
即HAVING
不使用聚合函数。那么我们不能也使用它WHERE Salesperson <> 'Georgio';
吗?
mysql - Mysql Group By、Order By、Count、Min()组合
我有一张有很多地址记录的表。新数据已添加到表中,我想查找与现有名称、邮政编码、街道匹配的所有新记录,这些新记录已分配给相同的 client_id (1) 以及某些其他条件(结果代码)。我正在努力的部分是获取与现有记录匹配的新记录的 id。
现有记录的 date_exported int(8) 是过去某个日期,添加的新记录的 date_exported 为 0。
使用下面的 SQL 并在 date_exported 字段周围使用 MIN 它显示 0 date_exported 记录,但由于分组和拥有,ID 没有与 SQL 的其余部分排序。如果没有 MIN,它会显示正确的 id 和数据,但它适用于 date_exported !=0 的旧记录 - 我想找到添加的 date_exported = 0 的新记录
pagination - 分页不适用于 Zend Framework 2 中的 HAVING 子句
我已经实现了一个类似于这里显示的分页:
搜索\模型\课程表
搜索\控制器\搜索控制器
现在抛出异常:
而上一个是:
它是一个框架错误吗?
编辑
$test = $select->getSqlString($this->tableGateway->getAdapter()->getPlatform());
我在之前的行中得到的生成查询$adapter = new \Zend\Paginator\Adapter\DbSelect($select, $this->tableGateway->getAdapter());
: