Retrieve the product with the highest average rating, including its category name, average rating, and total number of reviews.
CREATE TABLE "public"."product" (
"product_id" varchar(25) NOT NULL,
"category_id" varchar(20) NOT NULL,
"product_name" varchar(255) NOT NULL,
"price" int4 NOT NULL,
"quantity" int4 NOT NULL,
PRIMARY KEY ("product_id")
);
CREATE TABLE "public"."payment" (
"payment_id" varchar(20) NOT NULL,
"user_id" varchar(20) NOT NULL,
"order_id" varchar(20) NOT NULL,
"payment_date" date NOT NULL,
"amount" float8 NOT NULL,
"payment_method" varchar(255) NOT NULL,
PRIMARY KEY ("payment_id")
);
CREATE TABLE "public"."categories" (
"category_id" varchar(20) NOT NULL,
"category_name" varchar(255) NOT NULL,
PRIMARY KEY ("category_id")
);
CREATE TABLE "public"."reviews" (
"review_id" varchar(20) NOT NULL,
"product_id" varchar(20) NOT NULL,
"user_id" varchar(20) NOT NULL,
"rating" int4 NOT NULL,
PRIMARY KEY ("review_id")
);
CREATE TABLE "public"."users" (
"user_id" varchar(20) NOT NULL,
"user_name" varchar(255) NOT NULL,
"email" varchar(255) NOT NULL,
"mobile_no" varchar(20) NOT NULL,
"billing_address" varchar(255) NOT NULL,
PRIMARY KEY ("user_id")
);
CREATE TABLE "public"."address" (
"user_id" varchar(20) NOT NULL,
"street_address" varchar(255) NOT NULL,
"city" varchar(255) NOT NULL,
"state" varchar(255) NOT NULL,
"pin_code" int4 NOT NULL,
"country" varchar(255) NOT NULL,
PRIMARY KEY ("user_id")
);
CREATE TABLE "public"."orders" (
"order_id" varchar(20) NOT NULL,
"product_id" varchar(20) NOT NULL,
"user_id" varchar(20) NOT NULL,
"quantity" int4 NOT NULL,
"date_ordered" date NOT NULL,
PRIMARY KEY ("order_id")
);