有时候,你也许需要将一个数组中的元素根据某种规则进行分组。那么group_by方法就是很好的选择。
先来看下面的例子:
>> a = (1..20).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>> a.group_by { |num| num/5 }=> [[0, [1, 2, 3, 4]], [1, [5, 6, 7, 8, 9]], [2, [10, 11, 12, 13, 14]], [3, [15, 16, 17, 18, 19]], [4, [20]]]
我们看到,这个方法后面跟着一个block,他依次将数组的每个元素传入这个block中,然后根据block运算的结果,来进行分组,把结果相同的归为一组。
在返回的分组后的嵌入数组中,每个子数组的第一个元素是运算的结果,第二个元素就是返回这个结果的原数组元素group后的数组。
最新的rails对此做了改动,返回的是一个OrderedHash Object.
先来看下面的例子:
>> a = (1..20).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>> a.group_by { |num| num/5 }=> [[0, [1, 2, 3, 4]], [1, [5, 6, 7, 8, 9]], [2, [10, 11, 12, 13, 14]], [3, [15, 16, 17, 18, 19]], [4, [20]]]
我们看到,这个方法后面跟着一个block,他依次将数组的每个元素传入这个block中,然后根据block运算的结果,来进行分组,把结果相同的归为一组。
在返回的分组后的嵌入数组中,每个子数组的第一个元素是运算的结果,第二个元素就是返回这个结果的原数组元素group后的数组。
最新的rails对此做了改动,返回的是一个OrderedHash Object.
发表评论
-
12.3.3 scaling issue of the status feed
2011-10-30 17:54 825the problem of the implementati ... -
12.3 the status feed
2011-10-30 15:34 8611. we need to get all the micro ... -
12.2 a working follow button with Ajax
2011-10-29 18:10 9141. in the last chapter, in the ... -
12.2 a web interface for following and followers.
2011-10-28 22:14 8801.before we do the UI, we need ... -
12. following user, 12.1 relationship model
2011-10-18 14:29 7561. we need to use a relationshi ... -
11.3 manipulating microposts.
2011-10-17 15:31 9011. since all micropost actions ... -
11.2 show microposts.
2011-10-17 12:01 7051. add test to test the new use ... -
11.1 user micropost -- a micropost model.
2011-10-17 10:43 11081. we will first generate a mic ... -
10.4 destroying users.
2011-10-16 15:47 747in this chapter, we will add de ... -
10.3 showing users list
2011-10-15 20:41 778in this chapter, we will do use ... -
10.2 protect pages.
2011-10-15 15:11 668again, we will start from TD ... -
10.1 updating users.
2011-10-14 18:30 7101. git checkout -b updating-use ... -
9.4 sign out
2011-10-13 15:21 738whew!!!, last chapter is a long ... -
9.3 sign in success.
2011-10-12 15:39 7521. we will first finish the cre ... -
9.1 about flash.now[:error] vs flash[:error]
2011-10-12 15:37 727There’s a subtle difference ... -
9.2 sign in failure
2011-10-12 12:19 660start from TDD!!! 1. requir ... -
9.1 sessions
2011-10-12 10:00 645a session is a semi-permanent c ... -
what test framework should you use?
2011-10-11 16:56 0for integration test, i have no ... -
what test framework should you use?
2011-10-11 16:56 0<p>for integration test, ... -
8.4 rspec integration tests
2011-10-11 16:53 723in integration test, you can te ...
相关推荐
SELECT student_name, GROUP_CONCAT(DISTINCT test_score ORDER BY test_score DESC SEPARATOR '') FROM student GROUP BY student_name; ``` 上述语句中,`DISTINCT` 关键词去除了重复的分数,`ORDER BY` 对...
当同时出现了where_group_by_having_order_by的时候_执行顺序和编写顺序时的用法
例如,如果你有一个包含水果信息的表格,包括水果名称(FruitName)、产地(ProductPlace)和价格(Price),你可以使用`GROUP BY`语句来根据产地分组,以便计算每个产地的水果种类数量。 ### 2. `GROUP BY`的使用 ...
3. **HAVING** 用于对分组后的结果集进行过滤,常与 `GROUP BY` 配合使用。 理解并熟练掌握这三个子句的用法对于高效地处理和分析数据至关重要。希望本文能够帮助读者更好地理解和应用这些重要的SQL概念。
在SQL查询中,`order_by_`、`group_by_`和`having`是三个非常重要的关键字,它们分别用于不同的数据处理操作。 1. `ORDER BY`:此关键字用于对查询结果进行排序,默认是升序(ASC),也可以指定降序(DESC)。在`...
`ONLY_FULL_GROUP_BY`是其中的一种模式,它强制执行SQL标准关于GROUP BY子句的规定,即在GROUP BY之后的所有选择列必须出现在聚合函数(如SUM, COUNT, AVG等)中或者在GROUP BY子句中。 在MySQL 5.7及更高版本中,...
本文实例讲述了Django中使用group_by的方法。分享给大家供大家参考。具体分析如下: 在Django中怎样使用group_by语句呢?找了很多资料,都没有看到好的,在这里分享两种方法给大家: 首先,我们先建一个简单的模型。...
order_by_、group_by_、having的用法区别
本文将通过实例深入解析`GROUP_CONCAT`的使用方法。 首先,我们来看一下提供的三个表格的结构和数据: 1. `cate` 表:存储文章分类信息,包括`id`(主键)和`name`(分类名)。 2. `article` 表:存储文章基本信息...
Root_Explorer-v4.3.0(3.0 )-Kstyle_icon_group-Patched_by_Alphaeva
例如,`STRICT_TRANS_TABLES`模式要求在事务表中插入时数据必须完全有效,`NO_ZERO_IN_DATE`和`NO_ZERO_DATE`模式禁止日期字段包含零值,`ERROR_FOR_DIVISION_BY_ZERO`会在除以零时抛出错误,而非返回NULL,`NO_AUTO...
SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; ``` 这会去掉`ONLY_FULL_GROUP_BY`,但只对新创建的会话...
GROUP BY customer_id; ``` 这将返回每个客户的ID以及他们购买的所有产品的列表,每个产品名之间由逗号分隔。 接下来,`LOCATE` 函数是用于在一个字符串中查找另一个字符串的第一个出现位置。如果未找到,它将返回...
本文将深入探讨GROUP_CONCAT的使用及其潜在问题,并提供解决方案。 首先,GROUP_CONCAT的基本语法是: ```sql GROUP_CONCAT(column_name [ORDER BY column_name2 [ASC|DESC]] [SEPARATOR 'string']) ``` 这个函数在...
$row = $pdo->query("SELECT student_id, GROUP_CONCAT(courses_id) AS courses FROM student_courses WHERE student_id=2 GROUP BY student_id"); $result = explode(',', $row['courses']); ``` 此外,GROUP_...
### Group By 和 Order By 的使用方法及组合应用 在数据库查询语言 SQL(Structured Query Language)中,`GROUP BY` 和 `ORDER BY` 是两个非常重要的子句,它们可以帮助我们更高效地管理和展示数据。 #### GROUP ...
R语言group_by后进行聚组_R_paste_collapse