Saat ini saya memiliki database besar dengan beberapa ratus ribu baris dan saya mencoba memfilter untuk memenuhi parameter tertentu untuk tabel baru.

Saat ini saya memiliki kode:

SELECT sym, tstamp, COUNT(*) AS trades 
FROM datas 
GROUP BY sym, tstamp 
HAVING COUNT(tstamp) > 300 

Yang memberi saya tabel yang difilter yang saya cari. Namun saya terjebak dari sini tentang cara membuat tabel baru setelah saya mendapatkan hasil ini. Saya yakin ini cukup mudah tetapi saya telah terjebak di dalamnya selama beberapa jam.

Ini adalah kode yang saya coba gunakan:

"INSERT INTO newdb SELECT * FROM datas 
 WHERE sym, tstamp, COUNT(*) AS trades 
 FROM datas GROUP BY sym, tstamp 
 HAVING COUNT(tstamp) > 300"
sql
0
c0lton 31 Desember 2020, 07:47

3 jawaban

Jawaban Terbaik

Sepertinya Anda hanya memiliki SELECT * FROM datas tambahan di sana.

INSERT INTO tradecounts
SELECT
    sym,
    tstamp,
    COUNT(*) AS trades
FROM
    datas
GROUP BY
    sym,
    tstamp
HAVING COUNT(tstamp) > 300
2
Wellerman 31 Desember 2020, 04:57

Jika Anda ingin membuat tabel baru menggunakan kueri ini, Anda dapat menggunakan CTAS (CREATE TABLE AS SELECT) sebagai berikut:

CREATE TABLE NEWDB AS
SELECT sym, tstamp, COUNT(*) AS trades 
FROM datas 
GROUP BY sym, tstamp 
HAVING COUNT(tstamp) > 300 
0
Popeye 31 Desember 2020, 05:02

Gunakan konsep kunci asing di mana bidang kunci utama tabel induk juga akan dicocokkan dengan bidang kunci utama di tabel anak. Bidang kunci utama tabel anak ini akan menjadi kunci Asing untuk tabel induk.

Misalnya...Tabel1-Departemen ,Tabel 2-Karyawan dengan depid sebagai kunci utama dari kedua tabel daripada tabel akan seperti -

Buat departemen tabel (depid varchar (10) kunci utama, nama varchar (50), nomor gaji, kendala xyz kunci asing (depid) departemen referensi (depid) pada penghapusan Cascade)

Setelah di Hapus kami menyediakan mode seperti - SET NULL, CASCADE, SET DEFAULT

0
Priyanka Nigam 31 Desember 2020, 05:24