假设您有下表(这里关注的列是cid
):
+-----+-------+-------+-------+---------------------+--------------+
| cid | pid | rid | clink | time | snippet |
+-----+-------+-------+-------+---------------------+--------------+
| 155 | 11222 | 1499 | 1137 | 2012-08-22 03:05:06 | hi |
| 138 | 11222 | 241 | 1136 | 2012-08-21 05:25:00 | again |
| 138 | 11222 | 241 | 1135 | 2012-08-21 05:16:40 | hi |
| 155 | 11222 | 1499 | 1134 | 2012-08-21 05:11:00 | hi cute |
| 140 | 11222 | 11223 | 1133 | 2012-08-21 05:05:18 | hi |
| 154 | 11222 | 565 | 1132 | 2012-08-21 05:04:47 | 7 |
| 153 | 11222 | 272 | 1131 | 2012-08-21 05:04:41 | 6 |
| 146 | 11222 | 362 | 1130 | 2012-08-21 05:04:33 | 5 |
| 152 | 11222 | 364 | 1129 | 2012-08-21 05:04:27 | 4 |
| 151 | 11222 | 390 | 1128 | 2012-08-21 05:04:22 | 3 |
| 150 | 11222 | 333 | 1127 | 2012-08-21 05:04:16 | 2 |
| 148 | 11222 | 268 | 1126 | 2012-08-21 05:04:10 | 1 |
| 140 | 11222 | 11223 | 1125 | 2012-08-21 04:59:57 | hi sir |
| 147 | 11222 | 283 | 1123 | 2012-08-21 03:29:55 | yo |
| 140 | 11222 | 11223 | 1121 | 2012-08-21 02:12:13 | hello! |
| 139 | 11222 | 249 | 1120 | 2012-08-21 02:11:53 | hi :) |
| 140 | 11222 | 11223 | 1119 | 2012-08-21 02:11:26 | hi :) |
| 140 | 11222 | 11223 | 1118 | 2012-08-21 02:11:08 | hi too |
| 139 | 11222 | 249 | 1117 | 2012-08-21 02:11:00 | :P |
| 139 | 11222 | 249 | 1116 | 2012-08-21 02:10:57 | hi |
| 139 | 11222 | 249 | 1115 | 2012-08-21 02:10:51 | helo |
| 139 | 11222 | 249 | 1114 | 2012-08-21 02:06:19 | hi |
| 139 | 11222 | 249 | 1113 | 2012-08-21 02:05:45 | hi baby |
| 139 | 11222 | 249 | 1112 | 2012-08-21 02:05:00 | hi |
| 139 | 11222 | 249 | 1111 | 2012-08-21 02:04:41 | hi |
| 140 | 11222 | 11223 | 1110 | 2012-08-21 02:04:26 | hi |
| 140 | 11222 | 11223 | 1108 | 2012-08-21 01:47:40 | hey :) |
| 139 | 11222 | 249 | 1107 | 2012-08-21 01:44:43 | hi |
| 138 | 11222 | 241 | 1106 | 2012-08-21 01:44:11 | hi |
| 138 | 11222 | 241 | 1105 | 2012-08-21 01:09:20 | conv 1 msg 1 |
+-----+-------+-------+-------+---------------------+--------------+
如何只提取每个的第一次出现cid
?结果表将是:
+-----+-------+-------+-------+---------------------+--------------+
| cid | pid | rid | clink | time | snippet |
+-----+-------+-------+-------+---------------------+--------------+
| 155 | 11222 | 1499 | 1137 | 2012-08-22 03:05:06 | hi |
| 138 | 11222 | 241 | 1136 | 2012-08-21 05:25:00 | again |
| 140 | 11222 | 11223 | 1133 | 2012-08-21 05:05:18 | hi |
| 154 | 11222 | 565 | 1132 | 2012-08-21 05:04:47 | 7 |
| 153 | 11222 | 272 | 1131 | 2012-08-21 05:04:41 | 6 |
| 146 | 11222 | 362 | 1130 | 2012-08-21 05:04:33 | 5 |
| 152 | 11222 | 364 | 1129 | 2012-08-21 05:04:27 | 4 |
| 151 | 11222 | 390 | 1128 | 2012-08-21 05:04:22 | 3 |
| 150 | 11222 | 333 | 1127 | 2012-08-21 05:04:16 | 2 |
| 148 | 11222 | 268 | 1126 | 2012-08-21 05:04:10 | 1 |
| 147 | 11222 | 283 | 1123 | 2012-08-21 03:29:55 | yo |
| 140 | 11222 | 11223 | 1121 | 2012-08-21 02:12:13 | hello! |
| 139 | 11222 | 249 | 1120 | 2012-08-21 02:11:53 | hi :) |
+-----+-------+-------+-------+---------------------+--------------+
mysql对此有一个“作弊”:
select *
from mytable
group by cid;
这就是你所需要的,因为在MySQL中它可以让你 没有
聚集不分组,按列(其他数据库将抛出一个语法错误),在这种情况下,输出仅对每个第一次出现组由值(S)。不过,请注意,这将无法保证的 方式
中,“第一”发生确定(这将是行只是如何读)
如果您要先出现某个 特定的东西, 请先进行排序,然后再应用分组秘籍:
select *
from (
-- order by the "time" column descending to get the "most recent" row
select * from mytable order by time desc
) x
group by cid
有人愿意帮我完成一个jdbctemplate查询吗? 只需要获取具有唯一id的行,但存在重复的行,因为其他列(如date)具有不同的值。我需要最好得到最长日期,结果集不应该有任何重复项:x个 输出: 这几乎有效,但不完全有效。可悲的是,有重复的。 这是我正在使用的两张桌子。 PS.:使用PostgreSQL
问题内容: 我在numpy中有一个1D数组,我想在值超过numpy数组中的值的位置找到索引的位置。 例如 查找超出值的位置。 问题答案: 这有点快(看起来更好) 因为将在第一个位置停止(“如果多次出现最大值,则返回对应于第一个出现的索引。”)并且不会保存其他列表。
问题内容: 我想看看如何只获得具有唯一城市的唯一行/记录,而不关心是否是首都,例如: 只会返回一条记录。 我累了像这样的东西,但是没用 谢谢… 问题答案: 您可以使用以下仅用于mysql的技巧: 这将返回 遇到的第一行 的每个独特的价值和。 其他数据库将抱怨您的分组依据中未列出未聚合的列或此类消息。 已编辑 以前我声称不使用分组列上的函数将返回所有大小写的变化,但这是不正确的- 感谢SalmanA
问题内容: 我想知道如何从MySQL表中选择一个值。该表包括列和其他列(是自动递增的,并且是唯一的)。给定用户名,我想将一个会话变量设置为等于给定用户名的列中的值。这是我已经尝试过的代码: 到目前为止,我得到: 可捕获的致命错误:无法将类stdClass的对象转换为字符串。 强制转换为字符串类型不能解决问题。 问题答案: 不要在查询中的字段名称或表名称中使用引号。 提取对象后,您需要通过属性/属性
问题内容: 基本上,我需要获取在StaffOnGrade中出现2次以上的CampaignTitle的列表,并列出等级高于2的CampaignTitle,StaffNo WorksOn表: StaffOnGrade表: 以下两个查询实现了各个部分,但我需要将其作为一个查询结果集返回。 希望这是有道理的! 问题答案:
问题内容: 我有一个MySQL表,其中包含以下类型的信息: 这是我用来从该表获取数据的脚本示例: 该脚本显示表格中的每个日期,例如 我只想显示唯一的日期,例如 问题答案: 在MySQL中使用DISTINCT运算符: