algorithm - 呈现易于阅读的组合的算法
问题描述
鉴于要购买的产品/计算机列表,我想向客户简要介绍可能的规格组合。
我的输入(在下图中的左侧)是一个组合列表。所需的输出(在下图中的右侧)是图形表示。
数据量有限,因此性能并不重要
问题
有没有一种算法或方法可以帮助我产生这个?
编辑:更新的图像
解决方案
我相信 PostgreSQL 中的答案会是这样的:
-- CREATE TABLE computer(
-- size VARCHAR (50),
-- ram VARCHAR (50),
-- hdd VARCHAR (50)
-- );
SELECT size as size,
STRING_AGG(DISTINCT(ram), '\n') as ram,
hdd as hdd
FROM (
SELECT size as size,
STRING_AGG(DISTINCT(ram), '\n') as ram,
STRING_AGG(DISTINCT(hdd), '\n') as hdd
FROM computer
GROUP BY size, ram
) AS result
GROUP BY size, hdd;
在这个子查询中,我们按大小和内存分组,因为据我所知,一行中总是有一个大小,我们总是可以折叠硬盘。可能是某些 ram 是相等的,所以现在我们按 hdd 分组以折叠这些 ram,并按大小分组以保持它们的唯一性。
我希望这是有道理的并回答你的问题。
推荐阅读
- python - 找不到最大索引行的列值
- arrays - 从不同的 JSON 数组中删除重复项
- c# - MediaElement XAML -> 自动播放不是属性?
- spring-integration - 将 Spring Integration Graph 转换为图像
- rest - 如何在@RequestHeader(value=...) 中使用枚举的字符串值?
- c# - 如何使用 NWebsec 实施内容安全策略
- python - 有没有办法从光束管道的嵌套记录中获取少量字段?
- angular - 无法将数组传递给从 @Input 获取数据的 chart.js
- css - 在不影响边距或尺寸的情况下,在 div 中居中文本?
- node.js - nodejs:尝试与 SignalR api 交谈时出现未知错误