我试图在postgresql上写下面的查询:
select name, author_id, count(1),
(select count(1)
from names as n2
where n2.id = n1.id
and t2.author_id = t1.author_id
)
from names as n1
group by name, author_id
Run Code Online (Sandbox Code Playgroud)
这肯定适用于Microsoft SQL Server,但它在postegresql上完全不起作用.我稍微阅读了它的文档,似乎我可以将其重写为:
select name, author_id, count(1), total
from names as n1, (select count(1) as total
from names as n2
where n2.id = n1.id
and n2.author_id = t1.author_id
) as total
group by name, author_id
Run Code Online (Sandbox Code Playgroud)
但是这会在postegresql上返回以下错误:"FROM中的子查询不能引用相同查询级别的其他关系".所以我被卡住了.有谁知道我怎么能做到这一点?
谢谢
我正在UPDATE table SET column1 = 0Postegres 8.4上尝试一个简单的约300万行的桌子,但它需要永远完成.它已运行超过10分钟.现在是我的最后一次尝试.
以前,我试图在该表上运行VACUUM和ANALYZE命令,我也尝试创建一些索引(虽然我怀疑这会在这种情况下有所不同)但似乎没有任何帮助.
还有其他想法吗?
谢谢,里卡多
更新:
这是表结构:
CREATE TABLE myTable
(
id bigserial NOT NULL,
title text,
description text,
link text,
"type" character varying(255),
generalFreq real,
generalWeight real,
author_id bigint,
status_id bigint,
CONSTRAINT resources_pkey PRIMARY KEY (id),
CONSTRAINT author_pkey FOREIGN KEY (author_id)
REFERENCES users (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT c_unique_status_id UNIQUE (status_id)
);
Run Code Online (Sandbox Code Playgroud)
我想跑 UPDATE myTable SET generalFreq = 0;
我只是打电话给我Activity:
Toast.makeText(this, "This is a toast", Toast.LENGTH_SHORT).show()
Run Code Online (Sandbox Code Playgroud)
但结果是在toast容器的顶部对齐了一个文本,而不是它应该在内部居中:

关于什么可能出错的任何想法?
我正在尝试从已经获得锁定的服务开始活动,如下所示:
Intent i = new Intent(context, MyActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_USER_ACTION);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
活动清单声明如下:
<activity
android:name=".MyActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard|navigation"
android:excludeFromRecents="true"
android:launchMode="singleInstance"
android:screenOrientation="nosensor"
android:showOnLockScreen="true"
android:taskAffinity=""
android:theme="@style/MyTheme" />
Run Code Online (Sandbox Code Playgroud)
最后,on onCreate()或on onAttachedToWindow()(我试过两个),我添加以下标志:
final Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)
问题是我第一次startActivity()从我的服务中调用时,屏幕会亮起,但活动本身并没有显示出来.它显示锁定屏幕.每次后续调用startActivity()工作正常,但我找不到这种奇怪行为的原因.
我已经尝试过建议获取完整的唤醒锁而不是部分,根据以下SO答案更改清单中的标志和值:
请注意,我的主题不是对话框,而是全屏活动.
还有其他想法吗?
我想要做的是创建一个简单的内存缓存,只是为了尝试Observables.但是我被卡住了,因为我不明白如何创建一个observable.这是我到目前为止的代码:
public class MovieCache {
MovieWrapper movieWrapper;
public Observable<MovieWrapper> getMovies() {
//How to create and return an Observable<MovieWrapper> here?
}
public void setCache(MovieWrapper wrapper) {
movieWrapper = wrapper;
}
public void clearCache() {
movieWrapper = null;
}
}
Run Code Online (Sandbox Code Playgroud)
在getMovies()方法中,我想创建一个Observable并将我的本地字段movieWrapper返回给订阅者.我怎样才能做到这一点?我尝试使用new Observable.just(movieWrapper)但它导致null异常.
当我的应用程序启动时,启动器活动的onCreate()方法通常只被调用一次.但紧接着是对onResume()的两次调用.当我检查代码时,两个实例都属于同一个类,但是只有一个实例具有来自onCreate()的实例成员.
但是,一切都很好.我只是好奇地试图理解为什么会这样.有人有什么想法吗?我正在使用SherlockFragmentActivity,这与它有什么关系吗?我很乐意根据需要提供更多信息.我现在还不知道还有什么相关的.
谢谢!
android ×4
postgresql ×2
sql ×2
rx-android ×1
rx-java ×1
sql-server ×1
sql-update ×1
subquery ×1