当前位置: 首页 > 面试题库 >

MySQL:不在GROUP BY中

居飞扬
2023-03-14
问题内容

该站点产生结果,但是使用SELECT COUNT和SELECT查询以及GROUP
BY具有两个不同的结果计数。这可能是由于phpmyadmin中显示的错误,而不是网站上的错误。

查询:

SELECT count(DISTINCT `name`) as `numrows` FROM `users` WHERE `verified` = '1'

SELECT `name`, `type`, `language`, `code` FROM `users` WHERE `verified` = '1' GROUP BY `name` ORDER BY `count` DESC LIMIT 0, 25

PhpMyAdmin提供以下错误:

1055-‘main.users.type’不在GROUP BY中

在阅读MySQL文档时,我仍不清楚必须解决的问题。我似乎无法掌握这一点。


问题答案:

您需要有一个完整的小组:

SELECT `name`, `type`, `language`, `code` 
FROM `users` 
WHERE `verified` = '1' 
GROUP BY `name`, `type`, `language`, `code` 
ORDER BY `count` DESC LIMIT 0, 25

SQL92要求select子句中的所有列(聚合除外)都是group
by子句的一部分。SQL99稍微放松了此限制,并指出select子句中的所有列在功能上必须依赖于group
by子句。MySQL默认情况下允许部分分组依据,这可能会产生不确定的答案,例如:

create table t (x int, y int);
insert into t (x,y) values (1,1),(1,2),(1,3);
select x,y from t group by x;
+------+------+
| x    | y    |
+------+------+
|    1 |    1 |
+------+------+

即,为组x选择了随机y。可以通过设置@@ sql_mode来防止此行为:

set @@sql_mode='ONLY_FULL_GROUP_BY';
select x,y from t group by x; 
ERROR 1055 (42000): 'test.t.y' isn't in GROUP BY


 类似资料:
  • 我正在尝试选择一些不在我的中的属性。这可能吗? 如何从中获取CatId和持久属性? 如果我将它们添加到组中,就像,那么我的结果就会混乱。 我可以使用获得其他属性,如,但这些属性不是计算值。 数据示例: 希望将结果按如下方式分组:

  • 任何groupby操作都涉及对原始对象的以下操作之一。 他们是 - Splitting对象 Applying功能 Combining结果 在许多情况下,我们将数据分成几组,并在每个子集上应用一些功能。 在应用功能中,我们可以执行以下操作 - Aggregation - 计算摘要统计 Transformation - 执行某些特定于组的操作 Filtration - 在某些条件下丢弃数据 现在让我们

  • groupBy 将源 Observable 分解为多个子 Observable,并且每个子 Observable 将源 Observable 中“相似”的元素发送出来 groupBy 操作符将源 Observable 分解为多个子 Observable,然后将这些子 Observable 发送出来。 它会将元素通过某个键进行分组,然后将分组后的元素序列以 Observable 的形态发送出来。

  • Creates a new ObjectLikeSequence comprising the elements in this one, grouped together according to some key. The value associated with each key in the resulting object-like sequence is an array conta

  • groupBy 函数签名: groupBy(keySelector: Function, elementSelector: Function): Observable 基于提供的值分组成多个 observables 示例 示例 1: 根据属性分组 ( StackBlitz | jsBin | jsFiddle ) // RxJS v6+ import { from } from 'rxjs'; i

  • 问题内容: 我有一个包含以下信息的数据框: 我想根据索引插入数据帧中的值, 但仅在每个文件组中 。 插值,我通常会做 和我一起做 我希望插入的数据帧看起来像这样: NaN仍然存在于t = 6的位置,因为它们是file2组中的第一项。 我怀疑我需要使用“应用”,但是还无法确切地知道如何… 任何帮助,将不胜感激。 问题答案: