我有一个Postgres功能:
create function myfunction(integer, text, text, text, text, text, text) RETURNS
table(id int, match text, score int, nr int, nr_extra character varying, info character varying, postcode character varying,
street character varying, place character varying, country character varying, the_geom geometry)
AS $$
BEGIN
return query (select a.id, 'address' as match, 1 as score, a.ad_nr, a.ad_nr_extra,a.ad_info,a.ad_postcode, s.name as street, p.name place , c.name country, a.wkb_geometry as wkb_geometry from "Addresses" a
left join "Streets" s on a.street_id = s.id
left join "Places" p …Run Code Online (Sandbox Code Playgroud) 我有几次想在现场收集数据.在我不能总是访问我的postgres数据库的情况下.
为了保持同步,如果我可以离线使用psycopg2函数来生成可以阻止的查询,并且一旦我能够连接到数据库,那将是非常好的.处理所有阻碍的事情.
我目前正在努力的一件事是psycopg2游标需要构建连接.
我的问题是:
有没有办法在没有活动连接对象的情况下使用游标来执行mogrify之类的操作?或者使用未连接到数据库的连接对象?然后我想暂时将mogrify结果写入文件,以便稍后处理.
我在php中有一个函数:
//simple method with array()
$sensors = array();
$query = "select id, x(transform(wkb_geometry,". $epsg . ")) as lon, y(transform(wkb_geometry,". $epsg . ")) as lat from mytable;";
$result = pg_query($query) or die('Query failed: ' . pg_last_error());
while ($row = pg_fetch_assoc($result)) {
//var_dump($row);
$mySensor = new sensor($row['id'],$row['lat'],$row['lon']);
$sensors[] = $mySensor->geoJSON();
}
echo json_encode($sensors);
Run Code Online (Sandbox Code Playgroud)
输出:
"features": [{
"type": "Feature",
"id": 1579028,
"x": 4.85310557823,
"y": 52.7205622103,
"geometry": {
"type": "Point",
"coordinates": [4.85310557823, 52.7205622103],
"crs": {
"type": "OGC",
"properties": {
"urn": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
}
Run Code Online (Sandbox Code Playgroud)
现在我已经重写了数组,成为这样的对象: …
不知何故,重新启动我的一台服务器后,docker 变得不可用。以下是启动过程中的全部内容。与我的另一台机器的启动相反,其中可以看到另外 4 条日志行:
Jul 22 14:39:59 Ubuntu-1804-bionic-64-minimal dockerd[26234]: time="2019-07-22T14:39:59.791008126+02:00" level=info msg="Docker daemon" commit=0dd43dd graphdriver(s)=o
Jul 22 14:39:59 Ubuntu-1804-bionic-64-minimal dockerd[26234]: time="2019-07-22T14:39:59.791131397+02:00" level=info msg="Daemon has completed initialization"
Jul 22 14:40:00 Ubuntu-1804-bionic-64-minimal dockerd[26234]: time="2019-07-22T14:40:00.944885752+02:00" level=info msg="API listen on /var/run/docker.sock"
Jul 22 14:40:00 Ubuntu-1804-bionic-64-minimal systemd[1]: Started Docker Application Container Engine.
Run Code Online (Sandbox Code Playgroud)
我真的很想知道我可以检查什么,以找出为什么我的 docker 引擎无法完成启动。请不要给我答案告诉我必须重新安装 docker,这不是一个选项,除非我可以包含现有的容器。
Jul 22 18:39:17 srv4 systemd[1]: Starting Docker Application Container Engine...
Jul 22 18:39:18 srv4 dockerd[1123]: time="2019-07-22T18:39:18.634630237+02:00" level=info msg="systemd-resolved is running, so using resolvconf: /run/systemd/resolve/resolv.conf"
Jul 22 18:39:18 srv4 dockerd[1123]: …Run Code Online (Sandbox Code Playgroud) 说我有一个postgresql表,其中包含以下值:
id | value
----------
1 | 4
2 | 8
3 | 100
4 | 5
5 | 7
Run Code Online (Sandbox Code Playgroud)
如果我使用postgresql来计算平均值,它给我的平均值为24.8,因为100的高值对计算有很大的影响.事实上,我想在6左右找到一个平均值,并消除极端情况.
我正在寻找消除极端的方法,并希望这样做"统计上正确".极端无法修复.我不能说; 如果值超过X,则必须将其消除.
我一直在弯曲我的postgresql聚合函数,但不能把我的手指放在我正确使用的东西上.有什么建议?
我在替换函数中使用了一个非常简单的正则表达式,导致JSLint.com报告错误:
srcTemplate.replace(/{x}/g, tileX);
Run Code Online (Sandbox Code Playgroud)
在互联网上快速搜索提出了很多建议,但没有人回答我的问题:
如何增强正则表达式,以便JSLint验证并且该函数将继续工作?
postgresql ×2
aggregate ×1
docker ×1
dynamic-sql ×1
geojson ×1
javascript ×1
jslint ×1
json ×1
null ×1
offline-mode ×1
php ×1
plpgsql ×1
psycopg2 ×1
python ×1
rancher ×1
regex ×1
statistics ×1