使用这样的地理数据记录:
START | END
CITY1 | STATE1 | CITY2 | STATE2
----------------------------------------------
New York | NY | Boston | MA
Newark | NJ | Albany | NY
Cleveland| OH | Cambridge | MA
我想输出类似这样的内容,其中它以矩阵形式显示START / END配对:
| MA | NJ | NY | OH
------------------------------
MA | 0 | 0 | 1 | 0
NJ | 0 | 0 | 1 | 0
NY | 1 | 0 | 0 | 0
OH | 1 | 0 | 0 | 0
我可以看到如何GROUP BY
以及COUNT
将如何找到数据,但是我对如何显示为矩阵一无所知。有人有什么想法吗?
这似乎可以解决问题,并在PostgreSQL 9.1上进行了测试。几乎肯定会需要对它进行调整以使其适合SQL
Server(任何人都可以随时更新我对此的回答)。
SELECT start AS state,
SUM((dest = 'MA')::INT) AS MA,
SUM((dest = 'NJ')::INT) AS NJ,
SUM((dest = 'NY')::INT) AS NY,
SUM((dest = 'OH')::INT) AS OH
FROM (
SELECT state1 AS start, state2 AS dest
FROM routes
UNION ALL
SELECT state2 AS start, state1 AS dest
FROM routes
) AS s
GROUP BY start
ORDER BY start;
但是请注意,我的输出与您的输出略有不同-我不确定这是因为您的示例输出是错误的,还是因为我误解了您的要求:
state | ma | nj | ny | oh
-------+----+----+----+----
MA | 0 | 0 | 1 | 1
NJ | 0 | 0 | 1 | 0
NY | 1 | 1 | 0 | 0
OH | 1 | 0 | 0 | 0
(4 rows)
此查询的工作方式是查询表两次,一次查询state1-> state2路由,第二次查询state2-> state1路由,然后将它们连接在一起UNION ALL
。
然后,对于每个目标状态,它SUM()
为该行的原始状态运行一个。
该策略应易于适应任何RDBMS。
本文向大家介绍如何使用HTML5创建转换矩阵?,包括了如何使用HTML5创建转换矩阵?的使用技巧和注意事项,需要的朋友参考一下 HTML5 canvas提供了允许直接修改转换矩阵的方法。转换矩阵最初必须是身份转换。然后可以使用转换方法对其进行调整。 S号 方法和说明 1 变换(m11,m12,m21,m22,dx,dy) 此方法更改转换矩阵以应用参数指定的矩阵。 2 setTransform(m1
问题内容: 是否有“ Pythonic”方式(我的意思是,没有“ pure SQL”查询)来使用SQLAlchemy定义SQL视图? 问题答案: 更新: 又见SQLAlchemy的使用配方这里 据我所知,开箱即用不支持创建(只读非实例化)视图。但是在SQLAlchemy 0.7中添加此功能非常简单(类似于我在此处给出的示例)。您只需要编写一个编译器扩展即可 。使用此扩展名,您可以编写(假设这是一个
所以我想做一个单一的迷宫(没有发电机)在Java,我遇到了一个路障。我有的当前代码将制作一个迷宫,并制作一个jframe,但它不会给它着色...有办法让着色工作吗?? 任何帮助都可以,谢谢!
问题内容: 我想在不使用旧版SQL的情况下向现有表中添加一列。 基本的SQL语法是: 我格式化了Google BigQuery的查询: 但是,此错误的语法不正确: 那么,如何正确设置Google BigQuery的SQL格式? 问题答案: BigQuery不支持或其他DDL语句,但是您可以考虑提交功能请求。现在,您需要在BigQuery UI中的表中打开,然后使用“添加新字段”按钮添加该列,或者,
我试图创建一个简单的表,但它给了我一个错误: 剧本: 我想不出这个问题,有人能帮忙吗?
如题,新手,我知道要创建sequence,但是还是报错,代码如下: 提示“Error,ORA-00907:缺失右括号”。不知道为什么?正常应该如何创建自增id的表呢?