mysql - 如何从分组MYSQL中查询出随机公司名称
问题描述
我想从分组中获取特定的公司名称。表数据如下所示。我希望能够根据我的喜好选择其中一个 company_name 显示在输出中。例如,我想在 Rig A 的输出中显示 Halliburton、Hycalog 或 Drill,这可能吗?
钻机序列 company_name total_time ------ -------- ------------ ------------ 钻机 A 1 Hycalog 20 钻机 A 2 哈里伯顿 20 钻机 A 3 钻头 20 钻机 B 4 康菲 30 钻机 B 5 总计 30
我已经尝试过子查询和案例,所有这些都没有返回我想要的结果。我想要的只是选择在原始数据中随机公司的输出中显示哪个公司,例如在这种情况下,我想为钻机 A 显示 company_name Drill 并为钻机 B 显示 company_name Total ...
当然,如果可能的话,我可以自由选择我想在输出中显示的公司名称。
SELECT rig, sequence, company_name, SUM(total_time) FROM table A GROUP BY rig;
钻机序列 company_name total_time ------ -------- ------------ ------------ 钻机 A 3 钻头 60 钻机 B 5 总计 60
解决方案
如果您使用的是 MySQL 8+,那么这是一个使用选项ROW_NUMBER
:
SELECT rig, sequence, company_name, total_time_sum
FROM
(
SELECT *, ROW_NUMBER() OVER (PARTITION BY rig ORDER BY RAND()) rn,
SUM(total_time) OVER (PARTITION BY rig) total_time_sum
FROM tableA
) t
WHERE rn = 1;
演示
这将从每个装备组中选择一个随机行并显示它。
推荐阅读
- javascript - 为 Safari 应用程序扩展设置全局设置的最佳方法是什么?
- scheme - 如何以编程方式在 Edwin 中为 MIT-Scheme 调用 Mx 函数?
- clang - ASAN 不报告 glib 的 GPtrArray 相关函数的内存泄漏
- php - PHP图像上传压缩不起作用。你能看看我的代码吗?
- javascript - 如何在 Angular 2+ 中从父组件更改子组件的 HTML/CSS?
- regex - 忽略 RegEx 模式中的子字符串
- reactjs - 对象作为道具成功传递,但个别属性是“未定义”
- android - 来自原点“null”已被 CORS 政策阻止
- ruby-on-rails - Rails ActiveRecord:如何在单个查询中选择每天、多天的前 X 条记录?
- asp.net-core - AD B2C 索赔中的最新成员组