मेरे पास एक अतिरिक्त अनुरोध है:

INSERT INTO LIKES_PRODUCTS AS L (L.USER_ID, L.PRODUCT_ID) VALUES('7', '1')

तालिका में पंक्तियों की संख्या के लिए अनुरोध है:

SELECT COUNT(L.USER_ID) AS LIKES FROM LIKES_PRODUCTS AS L

क्या उन्हें एक ही क्वेरी में संयोजित करना संभव है, ताकि जोड़ पहले हो, और उसके बाद केवल तालिका में पंक्तियों की गिनती हो?

0
MegaRoks 28 फरवरी 2019, 09:06

1 उत्तर

सबसे बढ़िया उत्तर

आप डेटा संशोधित CTE

with new_row as (
  insert into likes_products (user_id, product_id)
  values (7,1)
)
select count(user_id) as likes
from likes_products;

हालांकि, अंतिम select पिछले सीटीई के प्रभाव को नहीं देखता है। यदि आप हमेशा एक पंक्ति सम्मिलित करते हैं, तो आप चयन में केवल count(user_id) + 1 कर सकते हैं। एक अन्य विकल्प सम्मिलित पंक्तियों को वापस करना और उन्हें गिनती में जोड़ना है:

with new_rows as (
  insert into likes_products (user_id, product_id)
  values (7,1),(8,2)
  returning *
)
select count(user_id) + (select count(*) from new_rows) as likes
from likes_products;
4
a_horse_with_no_name 28 फरवरी 2019, 07:49