public.vwknowledgecategory

public.vwknowledgecategory

Description

Knowledge base categories with KB context, document statistics, feedback metrics, and hierarchy information

Table Definition
CREATE VIEW vwknowledgecategory AS (
 SELECT cat.id AS category_id,
    cat.name AS category_name,
    cat.description AS category_description,
    cat.externalid AS external_id,
    cat.datecreated AS date_created,
    cat.datemodified AS date_modified,
    cat.documentcount AS document_count,
    cat.updated AS last_updated,
    cat.parentcategoryid AS parent_category_id,
    cat.parentcategoryname AS parent_category_name,
    pcat.description AS parent_category_description,
    cat.knowledgebaseid AS knowledge_base_id,
    kb.name AS knowledge_base_name,
    kb.description AS knowledge_base_description,
    kb.corelanguage AS knowledge_base_language,
    kb.published AS knowledge_base_published,
    kb.faqcount AS knowledge_base_faq_count,
    kb.articlecount AS knowledge_base_article_count,
        CASE
            WHEN (cat.parentcategoryid IS NULL) THEN 'Root Category'::text
            WHEN (pcat.parentcategoryid IS NULL) THEN 'Level 1'::text
            ELSE 'Level 2+'::text
        END AS category_level,
        CASE
            WHEN (cat.parentcategoryname IS NOT NULL) THEN ((((cat.parentcategoryname)::text || ' > '::text) || (cat.name)::text))::character varying
            ELSE cat.name
        END AS category_path,
    COALESCE(doc_stats.total_documents, (0)::bigint) AS total_documents,
    COALESCE(doc_stats.published_documents, (0)::bigint) AS published_documents,
    COALESCE(doc_stats.draft_documents, (0)::bigint) AS draft_documents,
    COALESCE(doc_stats.visible_documents, (0)::bigint) AS visible_documents,
    COALESCE(feedback_stats.total_feedback, (0)::bigint) AS total_feedback,
    COALESCE(feedback_stats.positive_feedback, (0)::bigint) AS positive_feedback,
    COALESCE(feedback_stats.negative_feedback, (0)::bigint) AS negative_feedback,
        CASE
            WHEN (COALESCE(feedback_stats.total_feedback, (0)::bigint) > 0) THEN round((((feedback_stats.positive_feedback)::numeric * 100.0) / (feedback_stats.total_feedback)::numeric), 2)
            ELSE NULL::numeric
        END AS positive_feedback_percentage,
    COALESCE(child_counts.child_category_count, (0)::bigint) AS child_category_count
   FROM (((((knowledgebasecategorydata cat
     LEFT JOIN knowledgebase kb ON (((cat.knowledgebaseid)::text = (kb.id)::text)))
     LEFT JOIN knowledgebasecategorydata pcat ON (((cat.parentcategoryid)::text = (pcat.id)::text)))
     LEFT JOIN ( SELECT knowledgebasedocument.categoryid,
            count(*) AS total_documents,
            sum(
                CASE
                    WHEN ((knowledgebasedocument.state)::text = 'Published'::text) THEN 1
                    ELSE 0
                END) AS published_documents,
            sum(
                CASE
                    WHEN ((knowledgebasedocument.state)::text = 'Draft'::text) THEN 1
                    ELSE 0
                END) AS draft_documents,
            sum(
                CASE
                    WHEN (knowledgebasedocument.visible = true) THEN 1
                    ELSE 0
                END) AS visible_documents
           FROM knowledgebasedocument
          GROUP BY knowledgebasedocument.categoryid) doc_stats ON (((cat.id)::text = (doc_stats.categoryid)::text)))
     LEFT JOIN ( SELECT doc.categoryid,
            count(*) AS total_feedback,
            sum(
                CASE
                    WHEN ((fb.rating)::text = 'Positive'::text) THEN 1
                    ELSE 0
                END) AS positive_feedback,
            sum(
                CASE
                    WHEN ((fb.rating)::text = 'Negative'::text) THEN 1
                    ELSE 0
                END) AS negative_feedback
           FROM (knowledgedocumentfeedbackdata fb
             JOIN knowledgebasedocument doc ON (((fb.documentid)::text = (doc.id)::text)))
          GROUP BY doc.categoryid) feedback_stats ON (((cat.id)::text = (feedback_stats.categoryid)::text)))
     LEFT JOIN ( SELECT knowledgebasecategorydata.parentcategoryid,
            count(*) AS child_category_count
           FROM knowledgebasecategorydata
          WHERE (knowledgebasecategorydata.parentcategoryid IS NOT NULL)
          GROUP BY knowledgebasecategorydata.parentcategoryid) child_counts ON (((cat.id)::text = (child_counts.parentcategoryid)::text)))
)

Columns

Name Type Default Nullable Children Parents Comment
category_id varchar(50) true
category_name varchar(100) true
category_description varchar(255) true
external_id varchar(100) true
date_created timestamp without time zone true
date_modified timestamp without time zone true
document_count integer true
last_updated timestamp without time zone true
parent_category_id varchar(100) true
parent_category_name varchar(100) true
parent_category_description varchar(255) true
knowledge_base_id varchar(100) true
knowledge_base_name varchar(100) true
knowledge_base_description varchar(255) true
knowledge_base_language varchar(50) true
knowledge_base_published boolean true
knowledge_base_faq_count integer true
knowledge_base_article_count integer true
category_level text true
category_path varchar true
total_documents bigint true
published_documents bigint true
draft_documents bigint true
visible_documents bigint true
total_feedback bigint true
positive_feedback bigint true
negative_feedback bigint true
positive_feedback_percentage numeric true
child_category_count bigint true

Referenced Tables

Name Columns Comment Type
public.knowledgebasecategorydata 11 BASE TABLE
public.knowledgebase 11 BASE TABLE
public.knowledgebasedocument 15 BASE TABLE
public.knowledgedocumentfeedbackdata 15 BASE TABLE

    • Related Articles

    • public.evalquestiondata

      Description Columns Name Type Default Nullable Children Parents Comment keyid varchar(50) false evaluationid varchar(50) false evaluationformid varchar(50) false questiongroupid varchar(50) true questionid varchar(50) true answerid varchar(50) true ...
    • public.participantattributesdynamic

      Description Columns Name Type Default Nullable Children Parents Comment keyid varchar(50) false conversationid varchar(50) false conversationstartdate timestamp without time zone false conversationstartdateltc timestamp without time zone true ...
    • public.userpresencedetaileddata

      Description User Presence Detailed Data Columns Name Type Default Nullable Children Parents Comment keyid varchar(255) false Primary Key userid varchar(50) true Agent GUID starttime timestamp without time zone false Start Time (UTC) starttimeltc ...
    • public.userinteractionpresencedetaileddata

      Description Columns Name Type Default Nullable Children Parents Comment keyid varchar(255) false userid varchar(50) true starttime timestamp without time zone false starttimeltc timestamp without time zone true endtime timestamp without time zone ...
    • public.evaldata

      Description Columns Name Type Default Nullable Children Parents Comment keyid varchar(100) false conversationid varchar(50) false evaluationid varchar(50) false calibrationid varchar(50) true evaluationformid varchar(50) true evaluatorid varchar(50) ...