我正在尝试创建一个包含行号的视图,如下所示:
create or replace view daily_transactions as
select
generate_series(1, count(t)) as id,
t.ic,
t.bio_id,
t.wp,
date_trunc('day', t.transaction_time)::date transaction_date,
min(t.transaction_time)::time time_in,
w.start_time wp_start,
w.start_time - min(t.transaction_time)::time in_diff,
max(t.transaction_time)::time time_out,
w.end_time wp_end,
max(t.transaction_time)::time - w.end_time out_diff,
count(t) total_transactions,
calc_att_status(date_trunc('day', t.transaction_time)::date,
min(t.transaction_time)::time,
max(t.transaction_time)::time,
w.start_time, w.end_time ) status
from transactions t
left join wp w on (t.wp = w.wp_name)
group by ic, bio_id, t.wp, date_trunc('day', transaction_time),
w.start_time, w.end_time;
Run Code Online (Sandbox Code Playgroud)
我最终得到了重复的行.SELECT DISTINCT
也不起作用.有任何想法吗?
交易表:
create table transactions(
id serial primary key,
ic text references users(ic), …
Run Code Online (Sandbox Code Playgroud) 我在表A中有以下列,它们在每次登记或从建筑物结账时记录用户指纹"交易".
CREATE TABLE user_transactions(
id serial PRIMARY KEY,
staff_id INT4,
transaction_time TIMESTAMP,
transaction_type INT4
);
Run Code Online (Sandbox Code Playgroud)
在一天内,用户可以拥有许多交易.如何创建具有以下结构的视图?
staff_id INT4
transaction_date DATE
first_transaction TIMESTAMP --first finger scan of the day
last_transaction TIMESTAMP --last finger scan of the day
number_of_transaction INT4 --how many times did the user scan for the day
Run Code Online (Sandbox Code Playgroud) 我正在使用Node版本7.6.0来尝试本机异步和等待功能.
我试图找出为什么我的异步调用只是挂起从来没有真正解决.
NLP模块:
const rest = require('unirest')
const Redis = require('ioredis')
const redis = new Redis()
const Promise = require('bluebird')
const nlp = {}
nlp.queryCache = function(text) {
return new Promise(function(resolve, reject) {
redis.get(text, (err, result) => {
if (err) {
console.log("Error querying Redis: ", err)
reject(new Error("Error querying Redis: ", err))
} else {
if (result) {
let cache = JSON.parse(result)
console.log("Found cache in Redis: ", cache)
resolve(cache)
} else {
resolve(null)
}
}
})
})
}
nlp.queryService = …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个系统,利用国家ID"识别记录"是一个好主意,在所有表中嵌入nat_id,使查询更容易?这样做有什么缺点?我只想在这里得到人们的意见,因为我可能会错过重要的事情.
我想建立以下伪查询
Select a From APDU a where a.group.id= :id
group是APDUGroup.class类型的APDU类中的字段。
我只想基于APDUGroup的ID获取APDU的列表。
如何使用标准的JPA查询来做到这一点?
更新
是的,在发布到S / O之前,我已经尝试了上述查询并尝试了数小时的其他变体。这是上面查询生成的SQL:
SELECT t1.ID, t1.status, t1.type, t1.modified, t1.response, t1.expectedSize, t1.created, t1.description, t1.sequence, t1.name, t1.command, t1.recurring, t1.auth, t1.createdBy, t1.APDUGroup, t1.modifiedBy FROM APDUGroup t0, APDU t1 WHERE ((t0.ID = ?) AND (t0.ID = t1.APDUGroup))
Run Code Online (Sandbox Code Playgroud)
该查询看起来还可以,但是没有从我的表中选择任何内容。我的测试数据库中至少有100个APDUGroup = 1的APDU。
我正在使用eclipselink作为JPA提供程序。
postgresql ×3
sql ×2
associations ×1
async-await ×1
field ×1
group-by ×1
javascript ×1
jpa ×1
natural-key ×1
node.js ×1
object ×1
primary-key ×1
promise ×1
rdbms ×1
sql-view ×1
view ×1
views ×1