小编Ran*_*Joe的帖子

使用分组为视图生成id行

我正在尝试创建一个包含行号的视图,如下所示:

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)

sql postgresql view sql-view window-functions

7
推荐指数
1
解决办法
1万
查看次数

Postgresql创建视图

我在表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)

sql postgresql group-by views aggregate-functions

4
推荐指数
1
解决办法
1万
查看次数

异步函数永远不会返回

我正在使用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)

javascript node.js promise async-await ecmascript-2017

3
推荐指数
1
解决办法
3102
查看次数

使用国民身份证作为主键

我正在开发一个系统,利用国家ID"识别记录"是一个好主意,在所有表中嵌入nat_id,使查询更容易?这样做有什么缺点?我只想在这里得到人们的意见,因为我可能会错过重要的事情.

postgresql rdbms database-design primary-key natural-key

2
推荐指数
1
解决办法
240
查看次数

JPA查询多对一关联

我想建立以下伪查询

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提供程序。

jpa field object associations

1
推荐指数
1
解决办法
6035
查看次数