问题标签 [mysql-variables]
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 - 获取每组分组结果的前 n 条记录
以下是最简单的示例,尽管任何解决方案都应该能够扩展到需要许多 n 顶级结果:
给定下面这样的表格,其中包含人员、组和年龄列,您将如何获得每个组中年龄最大的 2 人?(组内的关系不应产生更多结果,但按字母顺序给出前 2 个)
期望的结果集:
注意:这个问题建立在前一个问题的基础上——为每组分组的 SQL 结果获取具有最大值的记录——用于从每组中获取单个顶行,并从@Bohemian 获得了一个很好的 MySQL 特定答案:
希望能够以此为基础,尽管我不知道如何。
mysql - 在 select 中定义一个变量并在同一个 select 中使用它
有没有可能做这样的事情?
我总是得到第二列的 NULL 。奇怪的是,在做类似的事情时
一切都按预期工作。为什么?
mysql - sql语句中mysql会话变量值的优先级
在 SQL 语句中使用会话变量时的标准行为是什么。
案例 1:
在以下示例中,会话变量的行为符合预期。
上面的例子没有使用任何聚合函数。
案例 2:
当使用 , , 之类的聚合函数执行类似的语句时count
,sum
结果group by
模式完全不同。
请在以下位置找到一个示例:SQL Fiddle
在发布此查询之前,我尝试了解SQL-Query-Order-of-Operations。
mysql - MySQL:连续月份的记录计数
我已经四处寻找这个,但所有类似的问题和答案都不同,无法正常工作。
我有一个包含以下字段的表:人,事,purdate。当一个人购买每件新东西时,就会输入一条新记录。
我想计算一个人购买任何“东西”的连续月份(thing01 或 thing02,不重要)。如果连续 purdays 有中断,那么计数应该重新开始。
附上数据后,我想结束:
我知道我可以得到一个不同的人员列表,extract(year_month from purdate)——我已经在这个SQLFIDDLE中完成了——但我不知道如何只计算连续记录并在休息时重新开始(就像我的数据中 person_02 在 3 月和 5 月之间中断一样。)
这是数据:
mysql - 如何组合具有不同列名的两个表
我有两张桌子说 A 和 B 。
表一:
表:B
我想合并两个表。输出表应该看起来像..
表 a 的第一行应与表 b 的第一行合并。表 a 的第二行应与表 b 的第二行结合,以此类推.....
输出:
我尝试了不同的连接和联合,但没有得到所需的输出。提前致谢
注意:这些表是查询的结果,所以不能添加任何额外的列。
mysql - 使用 sql 从 100 个不同的表中提取前 10%
我有一个数据库,其中包含 100 个具有不同 employee_ID 和 Salary 的表。数据库中的总行数为 1 亿(100 个表中所有行的总和)。这些表的行数不相等。假设这 100 张桌子是按地区划分的。我想从所有桌子上返还前 10% 的薪水。怎么做到呢?
php - PHP 和 MySQL 使用相同的查询显示不同的结果
我有一个 MySQL 查询,当直接在我的本地 MySQL 数据库上执行时工作正常,但通过 PHP 执行时显示不同的结果。
或作为单行:
结果:
PHP结果:
a)count
没有像应有的那样增加
b) 因为 a) 它显示的行数超过了应有的行数(每个 id 应限制为 3 个)
我检查了多次,两个查询完全相同。PHP 没有用户输入或任何差异。
我已经检查了类似的问题,但没有一个有帮助。以下查询在 MySQL 和 PHP 上显示相同的结果:
有人知道造成这种差异的问题吗?
编辑更多信息:
在执行查询之前,我还尝试了使用和不使用以下内容:
mysql - 即使覆盖索引也优化 COUNT(DISTINCT) 慢
我们在 MySql 中有一个大约 3000 万条记录的表,以下是表结构
以下是我的查询
我正在做 UNION ALL 而不是使用 IN 操作
以下是我的解释声明
- 我将 COUNT(subscriber_id) 更改为 COUNT(*) 并没有观察到性能提升。
2.我从查询中删除了 COUNT(DISTINCTsubscriber_id),然后我获得了巨大的性能提升,我在大约 1.5 秒内得到结果,之前需要 50 秒 - 1 分钟。但我需要从查询中区分订阅者 ID
以下是我从查询中删除 COUNT(DISTINCTsubscriber_id) 时的说明
- 我通过删除 UNION ALL 分别运行了三个查询。一个查询花费了 32 秒,其他查询花费了 1.5 秒,但是第一个查询处理大约 350K 记录,而其他查询只处理 2k 行
我可以通过省略来解决我的性能问题,COUNT(DISTINCT...)
但我需要这些值。有没有办法重构我的查询,或添加索引或其他东西来获取COUNT(DISTINCT...)
值,但要快得多?
更新 以下信息是关于上表的数据分布
对于 1 个域 1 个活动 20 log_types 1k-200k 订阅者
我正在运行的上述查询,域有 180k+ 订阅者。
mysql - 如何在mysql中按限制顺序获取项目
我有一张桌子Item ( id, itemType)
。itemType
可以是 1-5。
我想使用 mysql 检索每种类型的 2 个项目。
我试过
这给了我按类型订购的 2 件商品,但我想要每种类型的 2 件商品。
mysql - SQL User Score 按分组排序
我有以下排名系统。
如您所见,我有 2 个用户拥有相同的 xp。
我想让他们都拥有rank = 2
,其余的应该从3
.
我怎样才能像这样对它们进行分组?